c语言编写程序输出0~5这6个数字可以组成哪些三位数,并将前10个数保存到数组。

如题所述

#include <stdio.h>

int res[10];
int j = 0;

//    以下实现的是数字可重复的三位数
//    若想要不可重复的,可加一个标记数组
//    检查该数字是否使用过 
void dfs(int i, int num)
{
    if( i == 3 ){
        printf("%d\n", num);
        if( j < 10 ){
            res[j++] = num;
        }
        return;
    }
    for(int k = 0; k <= 5; ++k){
        if( i==0 && k==0 )
            continue;
        dfs(i+1, num*10+k);    
    }    


int main(void)
{
    dfs(0, 0);
    
    puts("\n前10个数:"); 
    for(int i = 0; i < j; ++i)
        printf("%d\n", res[i]);
    
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
相似回答