思路:
1、这题很简单,分两种情况累加和 ,(day%6==0||day%7==0)即周六周天加上b,其它时候加上a。
2、注意的点在于数据可能达到,所以数据类型首先要开long long。
3、因为数据达到,所以直接用while循环一天一天,会超时。所以要先去算需要几周,再算还要多少天,这可以大大减少时间损耗。
#include<iostream>
using namespace std;
int main()
{
long long a, b, n;
cin >> a >> b >> n;
long long week = n / (5 * a + 2 * b);
long long sum = week * (5 * a + 2 * b);
long long day = week * 7;
while (sum < n)
{
day++;
if (day % 6 == 0 || day % 7 == 0)
sum += b;
else
sum += a;
}
cout << day;
}
思路:
1、这题也是累加和。
2、取每个数的各个位数,其中只要包含0、1、2、9其中的任意一个,就加起来。
#include<iostream>
using namespace std;
int judge(int n)
{
int flag = 0;
while (n)
{
int a = n % 10;
n /= 10;
if (a == 0 || a == 1 || a == 2 || a == 9)
{
flag = 1;
break;
}
}
return flag;
}
int main()
{
int n,sum=0;
cin >> n;
for (int i = 1; i <= n; i++)
{
int a=judge(i);
if (a == 1)
sum += i;
}
cout << sum;
}