首页 > 代码库 > 04-0. 求符合给定条件的整数集(15)
04-0. 求符合给定条件的整数集(15)
给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。
输入格式:
输入在一行中给出A。
输出格式:
输出满足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行末不能有多余空格。
输入样例:
2
输出样例:
234 235 243 245 253 254324 325 342 345 352 354423 425 432 435 452 453523 524 532 534 542 543
方法1:
#include "stdio.h"int main(){ int a,b,c,d,i,j; scanf("%d",&a); b=a+1; c=a+2; d=a+3; printf("%d%d%d %d%d%d %d%d%d %d%d%d %d%d%d %d%d%d\n",a,b,c,a,b,d,a,c,b,a,c,d,a,d,b,a,d,c); printf("%d%d%d %d%d%d %d%d%d %d%d%d %d%d%d %d%d%d\n",b,a,c,b,a,d,b,c,a,b,c,d,b,d,a,b,d,c); printf("%d%d%d %d%d%d %d%d%d %d%d%d %d%d%d %d%d%d\n",c,a,b,c,a,d,c,b,a,c,b,d,c,d,a,c,d,b); printf("%d%d%d %d%d%d %d%d%d %d%d%d %d%d%d %d%d%d\n",d,a,b,d,a,c,d,b,a,d,b,c,d,c,a,d,c,b); return 0;}
注:这是最开始写的,也是比较傻的一个方法,用了穷举,虽然提交能通过,但不建议这样写
方法2:
#include "stdio.h"int main(){ int A; scanf("%d",&A); int i=0,j=0,k=0; int cnt=0; for(i=A;i<A+4;i++) { for(j=A;j<A+4;j++) { if(i==j) continue; for(k=A;k<A+4;k++) { if(j==k||i==k) continue; printf("%d%d%d",i,j,k); cnt++; if(cnt%6==0) { printf("\n"); } else { printf(" "); } } } } return 0;}
注:这里用到了三层循环,注意点是i,j,k不能相同,方法是通过continue来跳过重复的情况,达到不重复的效果,另外,使用cnt计数来实现6个输出换一行
04-0. 求符合给定条件的整数集(15)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。