- 前言
- 一、纯质数
- 思路
- 代码
- 二、完全日期
- 思路
- 代码
蓝桥杯2021年国赛B组,填空题(C++)
一、纯质数 思路按照题意的要求,就是检查每个数的每一位是否是质数,并且这个数是否是质数,如果这两点都符合,就是纯质数。这里推荐用string库来解决问题。
答案:1903
代码#include
using namespace std;
int ans=1;
bool judge(int n)
{
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
return false;
}
}
string s=to_string(n);
if(s.find("1")!=-1||s.find("4")!=-1||s.find("6")!=-1||s.find("8")!=-1||s.find("9")!=-1||s.find("0")!=-1)
{
return false;
}
return true;
}
int main()
{
for(int i=3;i<=20210605;i++)
{
if(judge(i))
{
ans++;
}
}
cout<<ans<<endl;
return 0;
}
二、完全日期
思路
这个题目主要是需要额外考虑闰年对2月份天数的印象,剩下的个人感觉按照题目要求模拟就行,日期类的c++感觉没有太好的办法解决,主要还是模拟整个日期累加的过程
答案:977
代码#include
using namespace std;
int count_sum(int n)
{
int temp=0;
while(n!=0)
{
temp+=n%10;
n/=10;
}
return temp;
}
int main()
{
int year=2001;
int month=1;
int day=1;
int sum=0;
int ans=0;
while(year<=2021)
{
month=1;
if(year%400==0||(year%4==0&&year%100!=0)) //闰年
{
while(month<=12)
{
day=1;
if(month==4||month==6||month==9||month==11)
{
while(day<=30)
{
sum=0;
sum=count_sum(year)+count_sum(month)+count_sum(day);
if((double(sqrt(sum))-int(sqrt(sum)))==0)
{
ans++;
}
day++;
}
month++;
}
else if(month==2)
{
while(day<=29)
{
sum=0;
sum=count_sum(year)+count_sum(month)+count_sum(day);
if((double(sqrt(sum))-int(sqrt(sum)))==0)
{
ans++;
}
day++;
}
month++;
}
else
{
while(day<=31)
{
sum=0;
sum=count_sum(year)+count_sum(month)+count_sum(day);
if((double(sqrt(sum))-int(sqrt(sum)))==0)
{
ans++;
}
day++;
}
month++;
}
}
}
else //非闰年
{
while(month<=12)
{
day=1;
if(month==4||month==6||month==9||month==11)
{
while(day<=30)
{
sum=0;
sum=count_sum(year)+count_sum(month)+count_sum(day);
if((double(sqrt(sum))-int(sqrt(sum)))==0)
{
ans++;
}
day++;
}
month++;
}
else if(month==2)
{
while(day<=28)
{
sum=0;
sum=count_sum(year)+count_sum(month)+count_sum(day);
if((double(sqrt(sum))-int(sqrt(sum)))==0)
{
ans++;
}
day++;
}
month++;
}
else
{
while(day<=31)
{
sum=0;
sum=count_sum(year)+count_sum(month)+count_sum(day);
if((double(sqrt(sum))-int(sqrt(sum)))==0)
{
ans++;
}
day++;
}
month++;
}
}
}
year++;
}
cout<<ans<<endl;
return 0;
}
感谢Mr_渣渣辉 博主提供的题目集,图片出自2021第十二届蓝桥杯国赛C/C++大学B组题解_Mr_渣渣辉的博客-CSDN博客_2021蓝桥杯c语言b组答案
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)