词条信息

admin
admin
超级管理员
词条创建者 发短消息   

相关词条

热门词条

更多>>
什么是端口?到底是做什么的呢?
端口一般指两种,一种是硬件比如路由器或者交换机的插网线的端口,一种是软件的逻辑的概念,比如http的80端口!...
7种进阶方法让你快速测试端口连通性
Ping是Windows、Linux和Unix系统下的一个检查网络连通性的命令工具,对于大部分互联网用户来说很...
电脑开机,总需要按F1,是什么原因造成的?
一.主板掉电这个说法是行业内的叫法了,一般是主板的CMOS电池没电了导致的。也是最常见的一种提示你按F1的提示...
社保降费对个人有什么影响?
下调城镇职工基本养老保险单位缴费比例是政府给企业发的一个大红包,特别是对于企业来说是一个利好,但是对个人来说有...
车辆“出险”对下年保费的影响,到底有多大?
【出险对交强险的影响】【出险对商业险的影响】车辆“出险”对下年保费的影响,到底有多大?这里有必要先提下车险第三...

精选图集

更多>>
简易百科旧版 >>所属分类 >> 程序开发    C   

C语言求不重复的3位数代码及解析

标签: C语言 代码 解析

顶[0] 发表评论(0) 编辑词条

用1、2、3、4、5共5个数字能组成多少个互不相同且无重复数字的三位数?都是多少?


求互不相同的三位数,可以一位一位的去确定,先确定百位、再确定十位、个位,再将各位上的数值进行比较,若互不相同则输出。


算法设计


1) 利用多重循环嵌套的for语句实现。


2) 用三重循环分别控制百位、十位、个位上的数字,它们都可以是1、2、3、4、5。


3) 在已组成的排列数中,还要再去掉出现重复的1、2、3、4、5这些数字的不满足条件的排列。


题目要求最后输出满足条件的数据个数,需要一个变量count充当计数器的作用,有一个满足条件的数据出现计数器的值加1。为了使每行能输出6个数字,每输出一个数字就对count的值进行判断看是否能被6整除,若能整除则输出换行符。


if (count%8==0)

printf("n");

#include <stdio.h>

int main()

{

int i, j, k, count=0;

for(i=1; i<6; i++)

for(j=1; j<6; j++)

for(k=1; k<6; k++)

{

if(i!=k && i!=j && j!=k) /*判断三个数是否互不相同*/

{

count++;

printf("%d%d%d ", i, j, k);

if(count%6 == 0) /*每输出8个数换行*/

printf("n");

}

}

printf("n总个数是 %d.n", count);

return 0;

}


运行结果:


123 124 125 132 134 135

142 143 145 152 153 154

213 214 215 231 234 235

241 243 245 251 253 254

312 314 315 321 324 325

341 342 345 351 352 354

412 413 415 421 423 425

431 432 435 451 452 453

512 513 514 521 523 524

531 532 534 541 542 543


总个数是 60.


知识点补充


上面程序段的效率较低,因为无论i与j的值是否相等,k都要从1〜5把所有值遍历完,根据题目要求只要i与j的值相等,那么k的取值就没必要进行,因为无论k的值是多少,最后组成的三位数中总有相同的数字。对于本题来说,因取值范围较小,所以算法效率的高低相差并不大,但是对于取值范围大的题目,两种算法效率相差是很明显的。


程序代码改写如下:


#include<stdio.h>

int main ()

{

int i, j, k, count=0;

for(i=1; i<6; i++)

for(j=1; j<6; j++)

for(k=1; k<6 && j!=i; k++)

{

if(k!=j && k!=i)

{

printf("%d%d%d", i, j, k);

count++;

if(count%6==0)

printf ("n");

}

}

printf("n总个数是 %d.n", count);

return 0;

}

 

 

附件列表


按字母顺序浏览:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

→我们致力于为广大网民解决所遇到的各种电脑技术问题
 如果您认为本词条还有待完善,请 编辑词条

上一篇你真的了解 Unicode 和 UTF-8 吗?
下一篇C语言求水仙花数代码解析

0
1. 本站部分内容来自互联网,如有任何版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
2. 本站内容仅供参考,如果您需要解决具体问题,建议您咨询相关领域专业人士。
3. 如果您没有找到需要的百科词条,您可以到百科问答提问或创建词条,等待高手解答。

关于本词条的提问

查看全部/我要提问>>