思路:
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;elsesum += 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;
}