0
点赞
收藏
分享

微信扫一扫

实验05多重循环---1000以内所有各位数字之和为n的正整数

输出1000以内所有各位数字之和为n的正整数,例如:如果输入的n是6,那么,105的各位数字之和1+0+5=6, 123的各位数字之和1+2+3=6,两者都满足要求。每行输出6列,每个整数占8位宽度右对齐。

输入格式:
从键盘输入整数n的值。

输出格式:
每行输出6列,每个整数占8位宽度右对齐。如果最后一行不足6列,也需要换行。

输入样例:
在这里给出一组输入。例如:
6
输出样例:
在这里给出相应的输出。例如:

       6      15      24      33      42      51
      60     105     114     123     132     141
     150     204     213     222     231     240
     303     312     321     330     402     411
     420     501     510     600
//自己写的
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n,m=0,y=0,z=0,tem;
    scanf("%d",&n);
    tem=n;
    while(m<=tem*100)
    {
        int i=0;
        while(i<6 && m<=tem*100)
        {
            i++;
            m=100*y+10*z+n;
            if(m<=tem*100)
            {
                printf("%8d",m);
            }
            
            if(n>0)
            {
                n=n-1;
                z=tem-y-n;
            }
            else
            {
                y=y+1;
                z=0;
                n=tem-y;
            }
        }
        if(m<=tem*100)
            {
                 printf("\n");;
            }
       
    }
    
    
    return 0;
}
举报

相关推荐

0 条评论