zoukankan      html  css  js  c++  java
  • 5-16 求符合给定条件的整数集

    给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。

    输入格式:

    输入在一行中给出A。

    输出格式:

    输出满足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行末不能有多余空格。

    输入样例:

    2
    

    输出样例:

    234 235 243 245 253 254
    324 325 342 345 352 354
    423 425 432 435 452 453
    523 524 532 534 542 543
    

    解题思路:
    这道题提供两个思路:

    1. 利用 Continue 语句,及时跳出不符合条件的情况
      利用了 continue 语句,从而使得进入 for 循环经条件判断后直接跳出来进行下一次循环。
    2. 更简化的算法
      比起上面的算法,更具技巧性。上面的算法按照一般的逻辑去实现,而此算法更好地利用了 for 循环的特性。

    解题代码:

    #include<stdio.h> // 第一种算法
    
    int main ()
    {
    	int n;
    	scanf("%d", &n);
    	
    	int i, j, k;
    	int count = 0;
    	for (i=n; i<=n+3; i++) {
    		for (j=n; j<=n+3; j++) {
    			if ( j == i ) continue;
    			for (k=n; k<=n+3; k++) {
    				if ( k==i || k==j) continue;
    				printf("%d%d%d", i, j, k);
    				count ++;
    				if (count % 6 == 0) {
    					printf("
    ");
    				} else {
    					printf(" ");
    				}
    			}
    		}
    	}
    	 
    	return 0;
    }
    

    #include<stdio.h> // 第二种算法
    
    int main()
    {
    	int a,x,y,z;
    	scanf("%d", &a);
        int count = 0;
        
        for (x=a;x<a+4;x++){
    		for (y=a;y<a+4;y++){
    			for (z=a;z<a+4;z++){
    				if (x!=y && x!=z && y!=z) {					
    						printf("%d%d%d", x, y, z);
    						count++;
    					    if ( count%6==0 ) {
    					    	printf("
    ");
    					    } else {
    					    	printf(" ");
    					    }					
    				}
    					
    			}
    		}			
    	} 
        return 0; 
    }
  • 相关阅读:
    A query was run and no Result Maps were found for the Mapped Statement 'com.demo.dao.UserDao.check'. It's likely that neither a Result Type nor a Result Map was specified.
    layui监听input内容变动简单粗暴
    Java多线程中
    Java 对象内存分析
    MySQL重做日志
    并查集-Java实现
    java虚拟机类加载机制
    Java的23种设计模式概述
    redo log 有什么作用?
    什么是redo log ?
  • 原文地址:https://www.cnblogs.com/andywenzhi/p/5737219.html
Copyright © 2011-2022 走看看