宿題とか手伝えます
レス数が950を超えています。1000を超えると書き込みができなくなります。
0982デフォルトの名無しさん
NGNGコラッツの予想は
ttp://www.gt.sakura.ne.jp/~nyagy/integer/collatz.html
か。こんな名前ついてるの知らなかったよ。
プログラムはこんな感じかな。
#include <stdio.h>
#include <ctype.h>
#define even(n) (!((n) & 1))
unsigned long collatz(unsigned long n)
{
unsigned long p = 0;
while (n != 1) {
p++;
if (even(n)) {
n /= 2;
}
else {
n = n * 3 + 1;
}
}
return p;
}
int main(int argc, char * argv[])
{
unsigned long i, n, r, max = 0;
/* オプションのチェック */
if (argc < 2 || !isdigit(*argv[1])) {
fputs("数字を指定してYO!\n", stderr);
return 3;
}
n = strtoul(argv[1], NULL, 10);
for (i = 1; i <= n; i++) {
r = collatz(i);
if (max < r) {
max = r;
}
}
printf("%lu\n", max);
return 0;
}
って、プログラム書いてる間に、同じサイトが出てたね(w
レス数が950を超えています。1000を超えると書き込みができなくなります。