基础2--求五位数中的递减数

本文探讨了求解五位递减数的方法,通过两种不同的编程思路实现了计数问题的解决,一种是从数学组合的角度出发,另一种则是利用循环枚举的方式逐一验证。

基础2--求五位数中的递减数

一、心得

 

二、题目

三、代码及结果

数学解法:

c(10,5)=252

从十个数中选5个出来组成一个数就会符合题目要求

 

代码解法:

代码一:

 1 #include <iostream>
 2 using namespace std;
 3 int main(){
 4     int ans=0;
 5     for(int i=10000;i<=99999;i++)
 6     {
 7         int n1=i/10000;//求最高位 
 8         int n2=(i%10000)/1000;//求次一位 
 9         int n3=((i%10000)%1000)/100;//求中间位 
10         int n4=(i%100)/10;//求十位 
11         int n5=i%10;//求个位 
12         if(n1>n2&&n2>n3&&n3>n4&&n4>n5) ans++;
13     } 
14     cout<<ans<<endl;
15     return 0;
16 } 

 

代码二:

 1 #include <iostream>
 2 using namespace std;
 3 int main(){
 4     int ans=0;
 5     for(int n1=1;n1<=9;n1++){//枚举最高位 
 6         for(int n2=0;n2<=9;n2++){//枚举第二位 
 7             for(int n3=0;n3<=9;n3++){//枚举第三位 
 8                 for(int n4=0;n4<=9;n4++){//枚举第四位 
 9                     for(int n5=0;n5<=9;n5++){//枚举第五位 
10                         if(n1>n2&&n2>n3&&n3>n4&&n4>n5) ans++;
11                     }
12                 }
13             }
14         }
15     }
16     cout<<ans<<endl;
17     return 0;
18 } 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值