数字整数hdu1597

发一下牢骚和主题无关:

    

Problem Description

    

假设:
S1 = 1
S2 = 12
S3 = 123
S4 = 1234
.........
S9 = 123456789
S10 = 1234567891
S11 = 12345678912
............
S18 = 123456789123456789
..................
现在我们把全部的串联接起来
S = 1121231234.......123456789123456789112345678912.........
那么你能告诉我在S串中的第N个数字是多少吗?

    

 

    

Input

    

输入首先是一个数字K,代表有K次询问。
接下来的K行每行有一个整数N(1 <= N < 2^31)。

    

 

    

Output

    

对于每一个N,输出S中第N个对应的数字.

    

 

    

Sample Input
    每日一道理
微笑着,去唱生活的歌谣,不要埋怨生活给予了太多的磨难,不必抱怨生命中有太多的曲折。大海如果失去了巨浪的翻滚,就会失去雄浑;沙漠如果失去了飞沙的狂舞,就会失去壮观。人生如果仅去求得两点一线的一帆风顺,生命也就失去了存在的意义。
6 1 2 3 4 5 10
 

    

Sample Output
1 1 2 1 2 4
 
分为很多小部分,如1,12,123,1234,这个n就为4;
#include<stdio.h>

#include<math.h>

int main()

{

    __int64 n,m,k;

    scanf("%d",&k);

    while(k--)

    {

        scanf("%I64d",&m);

        n=(int)((pow(8.0*m+1,0.5)-1)/2.0);//第n段

        if(n*(n+1)/2==m)

        n--;

        m=m-n*(n+1)/2;



        if(m%9)

        printf("%I64d\n",m%9);

        else

        printf("9\n");

    }

    return 0;

}


文章结束给大家分享下程序员的一些笑话语录: 据说有一位软件工程师,一位硬件工程师和一位项目经理同坐车参加研讨会。不幸在从盘山公路下山时坏在半路上了。于是两位工程师和一位经理就如何修车的问题展开了讨论。
硬件工程师说:“我可以用随身携带的瑞士军刀把车坏的部分拆下来,找出原因,排除故障。”
项目经理说:“根据经营管理学,应该召开会议,根据问题现状写出需求报告,制订计划,编写日程安排,逐步逼近,alpha测试,beta1测试和beta2测试解决问题。”
软件工程说:“咱们还是应该把车推回山顶再开下来,看看问题是否重复发生。”

你可能感兴趣的:(HDU)