当前位置: 代码迷 >> 综合 >> 51Nod 1087 1 10 100 1000(暴力+找规律)
  详细解决方案

51Nod 1087 1 10 100 1000(暴力+找规律)

热度:44   发布时间:2023-11-08 15:17:21.0

分析:
我们可以看出1出现位置的规律:
0
1=0+1
3=1+2
6=1+2+3
10=1+2+3+4
总结出1出现的位置是:满足1+2+…n的,然后根据求和公式枚举判断即可。
AC:

#include<bits/stdc++.h>
using namespace std;
int t,flag=0,x;
int main(){
    std::ios::sync_with_stdio(false);cin>>t;while(t--){
    flag=0;cin>>x;x--;x=x*2;//问题转换为x能不能表示成n(n+1)的形式for(int i=0;i<=sqrt(x)+100;i++){
    if(i*i+i==x){
    flag=1;}}if(flag) cout<<"1"<<endl;else cout<<"0"<<endl;}return 0;
}
  相关解决方案