数字整数hdu1597
发一下牢骚和主题无关:
Problem Description
 假设: 
S1 = 1
S2 = 12
S3 = 123
S4 = 1234
.........
S9 = 123456789
S10 = 1234567891
S11 = 12345678912
............
S18 = 123456789123456789
..................
现在我们把全部的串联接起来
S = 1121231234.......123456789123456789112345678912.........
那么你能告诉我在S串中的第N个数字是多少吗?
 
 
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)。
接下来的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测试解决问题。”
    软件工程说:“咱们还是应该把车推回山顶再开下来,看看问题是否重复发生。”
 
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号