第九届蓝桥杯习题
1.
标题:分数
1/1 + 1/2 + 1/4 + 1/8 + 1/16 + …
每项是前一项的一半,如果一共有20项,
求这个和是多少,结果用分数表示出来。
类似:
3/2
当然,这只是加了前2项而已。分子分母要求互质。
注意:
需要提交的是已经约分过的分数,中间任何位置不能含有空格。
请不要填写任何多余的文字或符号。
我的答案:1048575/524288 2019/3/19
代码:
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main(){
long long a=0;
long long sum=0;
for(int i=1;i<=20;i++){
a=pow(2,(20-i));
sum+=a;
}
long long b=pow(2,19);
for(int j=1;j<b;j++){
if(sum%j==0&&b%j==0){
sum=sum/j;
b=b/j;
}
}
// cout << fixed << setprecision(0) << sum << endl;
cout<<sum<<endl;
cout<<b<<endl;
}
2
标题:星期一
整个20世纪(1901年1月1日至2000年12月31日之间),一共有多少个星期一?
(不要告诉我你不知道今天是星期几)
注意:需要提交的只是一个整数,不要填写任何多余的内容或说明文字。
分析:
看日期,最后一个周一是2000/12/25
代码:
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int count=0;
for(int y=1901;y<=2000;y++){
if((y%4==0&&(y%100)!=0||y%400==0)){
count+=366;
}
else count+=365;
}
count=count-6;
int sum=count/7;
cout<<sum<<endl;
}
答案:5217
然后发现还可以用excel: