备考蓝桥杯.day2
基础通关1.2
1. 九进制转十进制(2022C++B组A题)
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s="2022";//定义一个字符串变量
int ans = 0;//计数器,计算总和
for(int i=0;i<s.size();i++){
ans =ans+9+s[i]-'0';
}
cout<<ans<<endl;
return 0;
}
注意:‘2’是字符型,要将它转化成int型,所以要用’2’-‘0’,实际上是ACII码相减。
2. 跑步锻炼
#include<bits/stdc++.h>
using namespace std;
int days[] = {
0, 31, 28, 31, 30, 31, 30,
31, 31, 30, 31, 30, 31
};
bool is_leap(int y){//判断闰年
return y % 100 != 0 && y % 4 == 0 || y % 400 == 0;
}
int daysOfMonth(int y, int m){
if (m == 2)
return 28 + is_leap(y);
return days[m];
}
int main()
{
int y = 2000, m = 1, d = 1, w = 6;
int res = 0;
while (y != 2020 || m != 10 || d != 2){
if (d == 1 || w == 1)
res += 2;
else
res ++;
w ++;
if (w == 8)
w = 1;
d ++;
if (d > daysOfMonth(y, m)){
m ++, d = 1;
if (m == 13)
m = 1, y ++;
}
}
cout << res << endl;
return 0;
}
3. 刷题统计
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll a, b, n;
cin >> a >> b >> n;
//一周可完成num道题目
ll num = 5 * a + 2 * b;
ll ans = n / num * 7;
n = n % num;
//模拟最后一周的周一到周五
for(int i = 1; i <= 5; i++)
{
if(n <= 0)break;
ans++;
n -= a;
}
//模拟最后一周的周六到周日
for(int i = 1; i <= 2; i++)
{
if(n <= 0)break;
ans++;
n -= b;
}
cout<<ans<<endl;
return 0;
}