4.19打卡

一、小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。

请问,在 1 到 n 中,所有这样的数的和是多少?

输入描述

输入一行包含一个整数 �(1≤�≤104)n1n104)。

输出描述

输出一行,包含一个整数,表示满足条件的数的和。

#include <iostream>
using namespace std;
int main()
{
  int s,n,i=0,sum=0;
  cin >> n;
  for(i=1;i<=n;i++){
    s=i;
    while(s){
        if(s%10==2||s%10==0||s%10==1||s%10==9){
       sum+=i;
       break;    
        }
        s/=10;
      }
  }
  cout << sum;
  return 0;
}

小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天 做 a 道题目, 周六和周日每天做 b 道题目。请你帮小明计算, 按照计划他将在 第几天实现做题数大于等于 n 题?

输入格式

输入一行包含三个整数 �,�a,b 和 n.

输出格式

输出一个整数代表天数。

#include <iostream>
using namespace std;
typedef long long ll;
ll a,b,n,add,day;
int main()
{
  cin>>a>>b>>n;
  int tem=5*a+2*b;
  ll week=n/tem;
  ll last=n%tem;
  day+=week*7;
  int x=1;
  while(last>0)
  {
    if(x%7==6||x%7==0) last-=b;
    else last-=a;
    day++;
    x++;
  }
  cout<<day<<endl;
  return 0;
}

你有一架天平和 N 个砝码,这 N 个砝码重量依次是 �1,�2,⋅⋅⋅,��W1,W2,,WN

请你计算一共可以称出多少种不同的重量? 注意砝码可以放在天平两边。

输入格式

输入的第一行包含一个整数 N。

第二行包含 N 个整数:�1,�2,�3,⋅⋅⋅,��W1,W2,W3,,WN

输出格式

输出一个整数代表答案。

#include <iostream>
using namespace std;
int dp[105][100005];
int main()
{
    int n;cin >> n;
    dp[0][0] = 1;
    for (int i = 1;i <= n;i++)
    {
        int a;cin >> a;
        for (int j = 0;j <= 100000;j++)
        {
            if (dp[i-1][j])
            {
                dp[i][j] = 1;
                dp[i][j + a] = 1;
                dp[i][abs(j - a)] = 1;
            }
        }
    }
    int ans = 0;
    for (int i = 1;i <= 100000;i++)if (dp[n][i]) ans++;
    cout << ans;
}


posted @ 2023-04-20 01:45  jiuxiao  阅读(41)  评论(0)    收藏  举报