Tyvj-TOM的无穷序列
生活随笔
收集整理的這篇文章主要介紹了
Tyvj-TOM的无穷序列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
背景
蛟川書院模擬試題描述
TOM有一個無窮序列中如下:110100100010000100000。。。。。
請你幫助TOM找出在這個無窮序列中指定位置上的數字
輸入格式
第一行一個正整數N,表示詢問的次數;接下來的N行一個正整數Ai,Ai表示在序列中的位置。
輸出格式
N行,每一行為0或1,表示序列第Ai位上的數字。測試樣例1
輸入
4?3?
14?
7?
6
輸出
0?0?
1?
0
備注
對于100%的數據有N<=1500000,Ai<=10^9提示:差值為1的等差數列???Sn(前n項和)=n(n+1)/2
Moe-ing 思路:這題數據有點大,不考慮用模擬出整個序列再求,可以找出這個序列的規律,在對其進行計算。 過程:可以先對于2*(a-1+0.25)進行開方,并取整,再用a-sum*(sum-1)/2;,這樣就可以知道那一位是不是1或者0。 代碼如下: 1 #include<stdio.h> 2 #include<math.h> 3 int main() 4 { 5 int a,sum,n; 6 scanf("%d",&n); 7 while(n--) 8 { 9 scanf("%d",&a); 10 sum=0.5+sqrt(0.25+2*(a-1));//對于2*(a-1+0.25)進行開方,并取整 11 a=a-sum*(sum-1)/2; 12 if(a==1)printf("%d\n",1);//是1 13 else printf("%d\n",0);//否則是0 14 } 15 return 0; 16 }
?
?轉載于:https://www.cnblogs.com/geek-007/p/4298743.html
總結
以上是生活随笔為你收集整理的Tyvj-TOM的无穷序列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 的行级触发器
- 下一篇: 编写一个日历控件