2021第十二届蓝桥杯大赛软件赛省赛C/C++ 大学B组试题B卡片

话不多说,先上图片在这里插入图片描述

乍一看这题目很难,其实很简单,只要学会一个数的每位遍历即可,以下是我遍历一个数每位的模板:
int n;//n是要遍历的数
int i;
while(n)
{i=n/10;//i的结果就是一个整数的每位数,它会从个位开始遍历,一直在变
n/=10;
}

这个就是解答这个题目的代码了

#include<stdio.h>
int b0=2021,b1=2021,b2=2021,b3=2021,b4=2021,b5=2021,b6=2021,b7=2021,b8=2021,b9=2021;
int main()
{
int i;
for(i=1;i<=9999;i++)
{
if(fact(i)==1)
{printf("%d",i-1);
break;
}}
}


int fact(int i)
{
int n;
while(i)
{
n=i%10;
if(n==0)b0--;
if(n==1)b1--;
if(n==2)b2--;
if(n==3)b3--;
if(n==4)b4--;
if(n==5)b5--;
if(n==6)b6--;
if(n==7)b7--;
if(n==8)b8--;
if(n==9)b9--;
if(b0<0||b1<0||b2<0||b3<0||b4<0||b5<0||b6<0||b7<0||b8<0||b9<0)
return 1;
i/=10;
}
}

实施答案:3181
在这里插入图片描述

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

超维Ai编程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值