前提
//2以上の正の整数nを変換する次のような操作を考える.
// 操作A nが偶数の場合nを2で割る.
// 操作B nが奇数の場合nに3をかけて1を足す.
//「nの初期値のとり方にかかわりなく、
この操作を繰り返すとnは最終的に1に到達する」という仮説に対して 100以下の整数nが, この命題を満たすことを確認する
実現したいこと
nの値と変換操作の回数(操作Aと操作Bを行った回数の和)を導出したい
コードと問題
main.c
1#include <stdio.h> 2 3int main(){ 4 int k,K=100,i,n,j=0,l; 5 for(k=1;k<=K;k++){ 6 n=【ア】; 7 printf("%d",n); 8 for(i=1;【イ】!=1;i++){ 9 if(【ウ】%【エ】==0) n=n/【オ】; 10 else n=n*【カ】+【キ】; 11 printf("->%d",n); 12 } 13 printf("\n"); 14 } 15 return(0); 16} 17 18//完成したプログラムを改良すると、 19「1に到達するまでに要する変換プロセスの回数が最も大きい」 20100以下の整数nを求めることができる。 21//このnの値は【ク】であり,この時の変換操作の回数 22(操作Aと操作Bを行った回数の和)は【ケ】である. 23
試したこと
ア 2*k
イ 100
ウ n
エ 2
オ 2
カ 3
キ 1
ク
ケ
結果
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 154 156 158 160 162 164 166 168 170 172 174 176 178 180 182 184 186 188 190 192 194 196 198 200
何卒宜しくお願い致します。