求2022年编程程小盟CSP-J考前第一轮模拟试题题解
#include<bits/stdc++.h>
using namespace std;
int b[10000];
int n,a[1000][1000],tmp=-1,ci=0;//1000*1000不到1,000,000,000只能得80分
//int lun(int a,int b)//第几轮,第几个数
//{
// if(a%2==1)
// {
// if(b==1)
// {
// b==2;
// }
// if(b==2)
// {
// b==1;
// }
// }
// return b;
//}
int main()
{
cin>>n;//黑1,白2
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(tmp=-1)
{
a[i][j]=1;
}else{
a[i][j]=2;
}
}
tmp=0-tmp;
}
for(int i=1;i<=n;i++)//轮
{
for(int j=1;j<=i;i++)
{
if(j%i==0)
{
b[i]+=i;
}
}
}
for(int i=1;i<=n;i++)
{
if(b[i]<=n)
{
if(a[i][1]==1)//黑
{
if(b[i]%2==1)
{
ci++;
}
}
if(a[i][1]==2)
{
if(b[i]%2==0)
{
ci++;
}
}
}
}
cout<<ci;
}