HDU 1597 find the nth digit (二分查找)
生活随笔
收集整理的這篇文章主要介紹了
HDU 1597 find the nth digit (二分查找)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
二分查找
1 #include<stdio.h> 2 __int64 a[65555]; 3 void init() 4 { 5 a[0]=0; 6 for(int i=1;i<65537;i++) 7 { 8 a[i]=a[i-1]+i; 9 } 10 } 11 int search(int n,int low,int high) 12 { 13 int temp=(low+high)/2; 14 if(n==a[temp]) return temp-1; 15 if(low>=temp) return temp; 16 if(n>a[temp]) return search(n,temp,high); 17 if(n<a[temp]) return search(n,low,temp); 18 } 19 int main() 20 { 21 int k,flag,n; 22 init(); 23 scanf("%d",&k); 24 while(k--) 25 { 26 scanf("%d",&n); 27 int temp=search(n,1,65536); 28 n-=a[temp]; 29 n%=9; 30 if(n) printf("%d\n",n); 31 else printf("9\n"); 32 } 33 }?
轉載于:https://www.cnblogs.com/lqquan/p/3730601.html
總結
以上是生活随笔為你收集整理的HDU 1597 find the nth digit (二分查找)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: '固定' table宽度,走起!
- 下一篇: 字符串系列函数(不断跟新)