2
#include <stdio.h>
int main() {
int rangeValue;
int x;
printf("Please input a number to be considered in the range:\n");
scanf("%d", &rangeValue);
while (rangeValue != 1) {
x = rangeValue;
if ((x % 2) == 0) {
x = x/2;
printf("%d,", x);
} else {
x = (3 * x) + 1;
printf("%d,", x);
}
rangeValue--;
}
return 0;
}
私の目標は、rangeValueに与える数値から1までのすべての数値のCollatzシーケンスを実行することです。私はこれがうまくいくと思った。誰も私がそれを働かせるように助けることができる?Collatzの配列が1から所定の値へ
https://ideone.com/Aerc5T –
あなたが1からあなたの範囲の限界までカウントするように一つのループを必要とします。このような値ごとにCollatzシーケンスを決定するには、内側(入れ子になった)ループが必要です。新しい値をいつ開始するかをよりよく識別するために、印刷を改善する必要があります(シーケンスの完了後に改行を出力します)。あるいは、より良い方法として、渡された数値に対してCollatzシーケンスを出力する関数を書いてから、1..limitの範囲の各値に対してその関数を呼び出すようにしてください。数字の前にカンマを印刷する必要があります(最初のものはおそらく別々に印刷されるでしょう)。 –