第五天

披星戴月的贾维斯
C/C++领域新星作者
2023-03-08 12:11:47

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;
 }

 

 

 

 

 

 

 

...全文
16 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

50,779

社区成员

发帖
与我相关
我的任务
社区描述
和众多高校算法内卷分子,一起学习和交流算法那。浓郁的算法交流氛围,拒绝躺平,有效内卷。加入我们,私信我拉你入核心内卷群。
算法数据结构leetcode 个人社区
社区管理员
  • 执 梗
  • Dream-Y.ocean
  • ღCauchyོꦿ࿐
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

 刷题!

试试用AI创作助手写篇文章吧