31.测试次数
32.等差素数列
33.煤球数目
模拟
#include<bits/stdc++.h>
using namespace std;
long long t,res;
int main()
{
for(int i=1;i<=100;i++)
{
t+=i;
res+=t;
}
cout<<res;
return 0;
}
答案:171700
34.生日蜡烛
模拟
#include<bits/stdc++.h>
using namespace std;
int main()
{
for(int i=1;i<=100;i++)
{
int candle=0;
for(int j=i;j<=100;j++)
{
candle+=j;
if(candle==236) cout<<i<<endl;
}
}
return 0;
}
答案:26
35.凑算式
36.奖券数目
枚举
#include<bits/stdc++.h>
using namespace std;
int res;
bool check(int n)
{
while(n)
{
if(n%10==4) return false;
n/=10;
}
return true;
}
int main()
{
for(int i=10000;i<=99999;i++)
if(check(i)) res++;
cout<<res;
return 0;
}
答案:52488
37.星系炸弹
日期模拟
#include<bits/stdc++.h>
using namespace std;
int months[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int res;
bool isl(int n)
{
return (n%4==0&&n%100!=0)||n%400==0;
}
int main()
{
int days=0;//记录过了多少天
int y=2014,m=11,d=9;
while(1)
{
if(days==1000)
{
printf("%d-%02d-%02d",y,m,d);
break;
}
//更新下一天
days++;
d++;
if(d>months[m])
{
d=1;
m++;
if(m>12)
{
m=1;
y++;//这一年过去了
if(!isl(y)) months[2]=28;
else months[2]=29;
}
}
}
return 0;
}
答案:2017-08-05
38.三羊献瑞
手动计算/DFS
// 9瑞生辉
// 1 0献瑞
// 1 0生瑞气
// (1.加法中进位只能是1->三是1)
// (2.祥+1=1羊->祥是9,羊是0)
// (生+献=10+瑞,瑞+1=生)
for(int hui=2;hui<9;hui++)
for(int rui=2;rui<9;rui++)
for(int qi=2;qi<9;qi++)
for(int sheng=2;sheng<9;sheng++)
for(int xian=2;xian<9;xian++)
{
if(hui+rui!=10+qi) continue;
if(sheng+xian+1!=10+rui) continue;
if(rui+1!=sheng) continue;
cout<<hui<<' '<<rui<<' '<<qi<<' '<<sheng<<' '<<xian<<endl;
//观看每个数不相等的:7 5 2 6 8
}
答案:1085
39.跑步计划
日期模拟+枚举
(23.1.1~23.4.3天数)31+28+31+2=92;
92/7=13....1(所以23年1月1日是星期日)
#include<bits/stdc++.h>
using namespace std;
int months[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int res;
int main()
{
//23.1.1是星期日
int week=7;//week%7记录星期几
int y=2023,m=1,d=1;
while(1)
{
//记录这一天
if(week%7==1||m==1||m/10%10==1||d%10==1||d/10%10==1) res+=5;
else res++;
//更新下一天
week++;
d++;
if(d>months[m])
{
d=1;
m++;
if(m>12) break;//这一年过去了
}
}
cout<<res;
return 0;
}
答案:1333
40.互质