SHUOJ 2333
生活随笔
收集整理的這篇文章主要介紹了
SHUOJ 2333
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
描述
已知一個由2,23,233,2333,23333……組成的序列223233233323333……,求這個序列的第N位是2還是3。
輸入
第一行為一個整數T,表示有T組數據(1 <= T <= 10000)
接下來的T行每行1個整數N。(1 <= N <= 10^9)
輸出
每行輸出一個數,如果第n位是2,則輸出2,如果是3,則輸出3
我的想法
由于序列中2的出現次數比較少,讓我們來看一看關于2有什么規律。
容易發現,2在序列中出現的位置非常有規律
序列中位置f(x)和出現次序x滿足函數關系
F(x)=0.5x2?0.5x+1
根據題目中給出的N, 0.5x2?0.5x+1=N ;
如果這個解為整數即說明第N位上是2,反之則為3;
即 sqrt(Δ)?0.5=sqrt(2?N?1.75)?0.5=整數
AC代碼
#include<iostream> #include<cmath> using namespace std; int main() {long T(0),i(0);cin>>T;for(i=1;i<=T;i++){long long n(0);cin>>n;long double x(0);x=sqrt(2*n-1.75)-0.5;if((x-(int)x)==0)cout<<"2"<<endl;elsecout<<"3"<<endl;}return 0; }總結
以上是生活随笔為你收集整理的SHUOJ 2333的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSS浮动+背景图片+边框+文字排版+段
- 下一篇: APP-安装cisco anyconnc