【蓝桥杯】卡片

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
   int num[10],sum;    //使用数组表示0-9十个数字
  for(int i=0;i<10;i++){  //数组赋值
    num[i]=2021;
  }
  for(sum=1;sum<20210;sum++){   ///根据题目得知  答案不会超过四位数  
    int a=sum/100;              //前两位数字
    int b=sum%100;              //后两位数字
    switch (a/10){                //第一个数字 后面的switch同理 后三位数字
        case 0: num[0]--;break;
        case 1: num[1]--;break;
        case 2: num[2]--;break;
        case 3: num[3]--;break;
        case 4: num[4]--;break;
        case 5: num[5]--;break;
        case 6: num[6]--;break;
        case 7: num[7]--;break;
        case 8: num[8]--;break;
        case 9: num[9]--;break;
    } 
    switch (a%10){
            case 0: num[0]--;break;
        case 1: num[1]--;break;
        case 2: num[2]--;break;
        case 3: num[3]--;break;
        case 4: num[4]--;break;
        case 5: num[5]--;break;
        case 6: num[6]--;break;
        case 7: num[7]--;break;
        case 8: num[8]--;break;
        case 9: num[9]--;break;
    } 
    switch (b/10){
                case 0: num[0]--;break;
        case 1: num[1]--;break;
        case 2: num[2]--;break;
        case 3: num[3]--;break;
        case 4: num[4]--;break;
        case 5: num[5]--;break;
        case 6: num[6]--;break;
        case 7: num[7]--;break;
        case 8: num[8]--;break;
        case 9: num[9]--;break;
    } 
    switch (b%10){
        case 0: num[0]--;break;
        case 1: num[1]--;break;
        case 2: num[2]--;break;
        case 3: num[3]--;break;
        case 4: num[4]--;break;
        case 5: num[5]--;break;
        case 6: num[6]--;break;
        case 7: num[7]--;break;
        case 8: num[8]--;break;
        case 9: num[9]--;break;
    } 
    if(sum<10){    //数字小于10 前三位数字为0  补回去 后面同理
        num[0]+=3;
    }
    else if(sum<100){
        num[0]+=2;
    }
    else if(sum<1000){
        num[0]+=1;
    }
    //若有 某个数字小于等于0 则结束
    if(num[0]<=0||num[1]<=0||num[2]<=0||num[3]<=0||num[4]<=0||num[5]<=0||num[6]<=0||num[7]<=0||num[8]<=0||num[9]<=0){
        break;
    }
    
  }
  printf("%d\n",sum);
  return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

woop使劲学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值