题目链接:http://poj.org/problem?id=1019

题目大意:

  题目的意思很清楚了,就是把数字的每一位都当成是单个的字母来对待,然后求第i位的数是哪一个。(1<=i<=2^31-1)

题目分析:

  仔细观察并通过计算可以得知,想要通过穷举的方式用字符串来处理是行不通的,那就只好乖乖得着规律了。

  按照最大数字为1、2、3……的原则进行分组。发现了如下规律:

  一位数:

  1:1;

  12:2;

  ……

  123456789:9;

  两位数:

  12345678910:11;

  1234567891011:13;

  ……

  12345……99:189;

  最后发现到了五位数的某一位(大于31000,小于32000)时,总长度就已经超过2^31-1了。因而,数据并不算大,可以解决。按照上述规律,定义f[i]为i第一次出现的下标。

  那么就卡出i来,然后计算就可以了!

详细就看代码:

 #include<iostream>
#include<cstring>
#include<cstdio>
#include<string>
using namespace std;
#define MAX 2147483647
long long f[];//虽然MAX没有超过int但是所求之数是会超过的 void init()
{
f[]=;
int t=;
for(int i=;i<=;i++)
f[i]=f[i-]+i;
for(int i=;i<;i++)
f[i]=f[i-]+(t+=);
for(int i=;i<;i++)
f[i]=f[i-]+(t+=);
for(int i=;i<;i++)
f[i]=f[i-]+(t+=);
for(int i=;i<;i++)//这个上界很是重要!
f[i]=f[i-]+(t+=);
}
int main()
{
int t,n;
init();
cin>>t;
while(t--)
{
cin>>n;
if(n==)
{
cout<<<<endl;
continue;
}
for(int i=;i<;i++)
if(f[i-]<n&&f[i]>=n)
{
int temp=n-f[i-];//差值
if(temp>)//五位数
{
int t=temp-;
int t2=+(t-)/;
t-=*(t2-);
if(t==)
cout<<t2/<<endl;
if(t==)
cout<<(t2///)%<<endl;
if(t==)
cout<<(t2//)%<<endl;
if(t==)
cout<<(t2/)%<<endl;
if(t==)
cout<<t2%<<endl;
}else
if(temp>)//四位数
{
int t=temp-;
int t2=+(t-)/;
t-=*(t2-);
if(t==)
cout<<t2/<<endl;
if(t==)
cout<<(t2//)%<<endl;
if(t==)
cout<<(t2/)%<<endl;
if(t==)
cout<<t2%<<endl; }else
if(temp>)//三位数
{
int t=temp-;
int t2=+(t-)/;
t-=*(t2-);
//cout<<"t2="<<t2<<" t="<<t<<endl;
if(t==)
cout<<t2/<<endl;
if(t==)
cout<<(t2/)%<<endl;
if(t==)
cout<<t2%<<endl; }else
if(temp>)//二位数
{
int t=temp-;
int t2=+(t-)/;
t-=*(t2-);
if(t==)
cout<<t2/<<endl;
if(t==)
cout<<t2%<<endl;
}else
if(temp>)//一位数
cout<<temp<<endl;
break;
}
}
return ;
}

POJ1019

  

POJ1019-Number Sequence数学的更多相关文章

  1. POJ1019——Number Sequence(大数处理)

    Number Sequence DescriptionA single positive integer i is given. Write a program to find the digit l ...

  2. uva 10706 Number Sequence(数学规律)

    题目连接:10706 - Number Sequence 题目大意:有一个有0 ~ 9组成的序列,1   1 2    1 2 3   1 2 3 4   1 2 3 4 5 ....就是第一位为1. ...

  3. POJ1019 Number Sequence

    Number Sequence Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 36256   Accepted: 10461 ...

  4. 1005:Number Sequence(hdu,数学规律题)

    Problem Description A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1 ...

  5. 数学: HDU1005 Number Sequence

    Number Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  6. 杭电ACM刷题(2):1005,Number Sequence 标签: 杭电acmC语言 2017-05-11 22:43 116人阅读

    Problem Description A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1 ...

  7. HDU 1005 Number Sequence

    Number Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  8. POJ 1019 Number Sequence

    找规律,先找属于第几个循环,再找属于第几个数的第几位...... Number Sequence Time Limit: 1000MS Memory Limit: 10000K Total Submi ...

  9. HDOJ 1711 Number Sequence

    Number Sequence Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  10. Number Sequence

    Number Sequence   A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) ...

随机推荐

  1. IDEA 编译等级与源代码等级不一致问题

    错误:Error:java: javacTask: source release 1.7 requires target release 1.7 原因:javac编译时指定的字节码版本低于了1.7版本 ...

  2. Alamofire源码解读系列(十)之序列化(ResponseSerialization)

    本篇主要讲解Alamofire中如何把服务器返回的数据序列化 前言 和前边的文章不同, 在这一篇中,我想从程序的设计层次上解读ResponseSerialization这个文件.更直观的去探讨该功能是 ...

  3. elasticsearch使用river同步mysql数据

    ====== mysql的river介绍======      - 什么是river?river代表es的一个数据源,也是其它存储方式(如:数据库)同步数据到es的一个方法.它是以插件方式存在的一个e ...

  4. 大数据测试之hadoop系统生态

    poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标,也是国内最早探索大数据测试培训的机构,开发了独有的课程体系.如果对课程感兴趣,请大 ...

  5. Android内存优化之OOM

    内容大多都是和OOM有关的实践总结概要.理解错误或是偏差的地方,还请多包涵指正,谢谢!本人Q:1524447071 (一)Android的内存管理机制 Google在Android的官网上有这样一篇文 ...

  6. Android实现网络多线程断点续传下载

    本示例介绍在Android平台下通过HTTP协议实现断点续传下载. 我们编写的是Andorid的HTTP协议多线程断点下载应用程序.直接使用单线程下载HTTP文件对我们来说是一件非常简单的事.那么,多 ...

  7. 玩转SSH(四):Struts + Spring + MyBatis

    一.创建 SSMDemo 项目 点击菜单,选择“File -> New Project” 创建新项目.选择使用 archetype 中的 maven-webapp 模版创建. 输入对应的项目坐标 ...

  8. MySQL存储过程--带参数报错1064

    DELIMITER $$ USE `student`$$ DROP PROCEDURE IF EXISTS `sync_student`$$ CREATE DEFINER=`student`@`%` ...

  9. 使用opencv实现自定义卷积

    对图像进行卷积是图像处理的基本操作,最近在研究图像滤波,经常要用到自定义卷积,所以实现了一下 #include "opencv2/imgproc/imgproc.hpp" #inc ...

  10. npm安装

    淘宝镜像http://npm.taobao.org/ $ npm install -g cnpm --registry=https://registry.npm.taobao.org mac下 sud ...