4.2w+
社区成员
1、
#include <iostream> using namespace std; bool cheak(int a) { int n = a, cnt = 0; while(n) { int h = n % 10; n /= 10; if(h == 2 || h == 4) return false; } return true; } int main() { int cnt = 0; for(int i = 1; i <= 672; i++) { for(int j = i + 1; j < 2019-i-j; j++) { if(cheak(2019 - i - j) && cheak(j) && cheak(i)) cnt++; } } cout << cnt ; return 0; }
2、
#include <iostream> using namespace std; bool cheak(int a) { int y = a /10000; int m = a / 100 % 100; int d = a % 100; if(a % 2012 == 0 && m == 6 && d < 32) { if(a%3 ==0) { if(a % 12 == 0) return true; } } return false; } int main() { for(int i = 19000601; i < 20000601; i++) { if(cheak(i)) { cout << i << endl; break; } } return 0; }
3、
#include <iostream> using namespace std; const int N = 1e5+ 10; int a[N]; int n; int main() { cin >> n; for(int i = 0; i < n; i++) { cin >> a[i]; } double sum = 0, cnt = 0; for(int i = 0; i < n; i++) { if(a[i] >= 60) cnt++; if(a[i] >= 85) sum ++; } double c = (cnt / n) * 10000; double d = (sum / n) * 10000; int ans1 = (int)c; int ans2 = (int)d; if(ans1%100 >= 50) printf("%d%\n", ans1/100 + 1); else printf("%d%\n", ans1 / 100); if(ans2 %100 >= 50) printf("%d%\n", ans2/100 + 1); else printf("%d%\n", ans2 / 100); return 0; }
4、
#include <bits/stdc++.h> using namespace std; const int N = 1e4 + 10, inf = 0x3f3f3f3f; int a[N], f[N]; int n; bool is_prime(int x)//判断质数 { for(int i = 2; i < x / i; i++) { if(x % i == 0) return false; } return true; } int d_prime(int x)//遍历所有因子数 { for (int i = 2; i <= x; ++ i ) if (x % i == 0 && is_prime(i))//为x的因子同时为质数,由每次于从2开始便得到最小因子 return i; return 1; } int main() { cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; memset(f,-inf,sizeof(f));//初始化 f[1]=a[1]; for(int i=1;i<=n;i++){ int j=d_prime(n-i);//从当前位置所能跳到的最远位置i——i+1到i+d_prime(n-i) for(int k=i+1;k<=i+j;k++){ //遍历所有的可能跳到的位置 if(f[k] == -inf) f[k] = a[k] + f[i];//如果之前为经过,便直接f[i]+a[k]; else f[k]=max(f[k],f[i]+a[k]); } } cout<<f[n]; return 0; }