首页 > 代码库 > ural 1209. 1,10,100,1000.....

ural 1209. 1,10,100,1000.....

技术分享z

好像就是解这个方程:

技术分享

a[i]表示在序列中的位置,如果有正整数解,则是1,否则是0

变形的

技术分享

 1 #include <iostream>
 2 #include <cmath>
 3 #include <cstdio>
 4 using namespace std;
 5 
 6 const int N=65535;
 7 long long a[N];
 8 
 9 int main(){
10     long long n;
11     cin>>n;
12     for(int i=0;i<n;i++)
13         cin>>a[i];
14 
15     for(int i=0;i<n;i++){
16         long long  tmp=(long long)sqrt(2*(a[i]-1));
17         if(tmp*(tmp+1)==2*(a[i]-1)||a[i]==1||tmp*(tmp-1)==2*(a[i]-1))
18             cout<<1;
19         else cout<<0;
20         printf("%c",i+1==n?\n: );
21     }
22 }

 

ural 1209. 1,10,100,1000.....