【问题标题】:printing a periodical series of a number in C在 C 中打印一个数字的周期性序列
【发布时间】:2013-06-17 20:19:01
【问题描述】:

给定一个周期数列 示例 X=3

x=3 的期刊系列一定是这样的

1 1 1
1 1 2
1 1 3
1 2 1
1 2 2
1 2 3
1 3 1
1 3 2
1 3 3
2 1 1
2 1 2
2 1 3
2 2 1
2 2 2
2 2 3
2 3 1
2 3 2
2 3 3 
3 1 1 
3 1 2
3 1 3
3 2 1
3 2 2
3 2 3
3 3 1
3 3 2
3 3 3

想要:用 C 写一个程序来打印这个系列 并给出:假设 x 的最大值可以是 10

我试图从想法开始..但都失败了.. 请帮忙 。谢谢:)

【问题讨论】:

  • 我有很多想法可以帮助你,但都失败了。对不起。很难区分这和什么都不做,你不同意吗?
  • 为什么1 2 11 2 2等没有出现?
  • 对不起,我忘记了..已编辑
  • 对于 x = 2,输出应该是 11 12 21 22 还是 111 112 121 122 211 212 221 222?
  • 对于 x=2 .. 11 12 21 22

标签: c recursion series


【解决方案1】:
def yourFunction(n, x):
    recursiveFunction(n, x, 0, [0]*n)

def recursiveFunction(depth, breadth, currentDepth, indexes):
    if currentDepth >= depth:
        print indexes
    else:
        for indexes[currentDepth] in range(0, breadth):
             recursiveFunction(depth, breadth, currentDepth + 1, indexes)

【讨论】:

  • @OausimDjango 不,那是你的工作。
  • 我坐下来尝试用我自己笨拙的方式编写代码。然后我看到了你的代码,开始哭着跑到这里:bkcareers.com
  • 但我不明白你的代码..我怎么能把它转换成C??我只知道C ..请帮忙..谢谢你
  • @OausimDjango 如果您看不懂,我建议您至少学习一门编程语言,至少从一开始就是这样。你显然连 C 都不知道。
  • @AJMansfield 这是我作为软件工程师的第一年 .. 他们只教我们 C ..
【解决方案2】:
#include<stdio.h>
#include<stdlib.h>

int printSeries(int list[], int max, int level){
    if(level == max){
        int i;
        for(i=0;i<max;++i)
            printf("%d ", list[i]);
        printf("\n");
        return 1;
    }
    while(list[level]<=max){
        list[level]+=printSeries(list, max, level+1);
    }
    list[level] = 1;

    return 1;
}

void printSeriesStart(int x){
    int i, *list = malloc(x*sizeof(int));

    for(i=0;i<x;++i){
        list[i]=1;
    }
    printSeries(list, x, 0);
    free(list);
}

int main(void){
    int X = 3;
    printSeriesStart(X);
    return 0;
}

【讨论】:

  • @OausimDjango 从最左边开始重复计数。
猜你喜欢
  • 1970-01-01
  • 2018-11-19
  • 2021-04-09
  • 2011-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
相关资源
最近更新 更多