7-16 求符合给定条件的整数集(15 分)

给定不超过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 start;  
          scanf("%d", &start);  
          int end;  
          int n = 0;  
          end = start + 4;  
          for(int i = start; i<end; i++)
          {  
                  for(int j = start; j<end; j++)
                  {  
                          if(i == j) continue;  
                          for(int k = start; k<end; k++)
                          {  
                               if(k == j) continue;  
                               if(k == i) continue;  
                               n++;  
                               if(n%6)
                               {  
                                   printf("%d ", i*100+j*10+k);  
                               }else
                               {  
                                   printf("%d
      ", i*100+j*10+k);  
                               }  
                          }  
                  }  
          }  
      }  
      #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; 
      }
原文地址:https://www.cnblogs.com/2228212230qq/p/8035482.html