>また、全部をforにするのも、桁が大きすぎて問題があります。
「32桁分の0~9の数字をforループ」を素直に書くと以下のような、入れ子が32重になったforループになります。
int i0,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12,i13,i14,i15;
int i16,i17,i18,i19,i20,i21,i22,i23,i24,i25,i26,i27,i28,i29,i30,i31;
for(i31 = 0;i31 < 10;i31++) {
for(i30 = 0;i30 < 10;i30++) {
for(i29 = 0;i29 < 10;i29++) {
for(i28 = 0;i28 < 10;i28++) {
for(i27 = 0;i27 < 10;i27++) {
for(i26 = 0;i26 < 10;i26++) {
(以下略)
しかし、以下のようにすれば「4重」で済みます。
int ii0,ii1,ii2,ii3;
int i0,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12,i13,i14,i15;
int i16,i17,i18,i19,i20,i21,i22,i23,i24,i25,i26,i27,i28,i29,i30,i31;
for(ii0 = 0;ii0 < 100000000;ii0++) {
i31 = ii0 / 10000000;
i30 = (ii0 / 1000000) % 10;
i29 = (ii0 / 100000) % 10;
i28 = (ii0 / 10000) % 10;
i27 = (ii0 / 1000) % 10;
i26 = (ii0 / 100) % 10;
i25 = (ii0 / 10) % 10;
i24 = ii0 % 10;
for(ii1 = 0;ii1 < 100000000;ii1++) {
i23 = ii1 / 10000000;
i22 = (ii1 / 1000000) % 10;
i21 = (ii1 / 100000) % 10;
i20 = (ii1 / 10000) % 10;
i19 = (ii1 / 1000) % 10;
i18 = (ii1 / 100) % 10;
i17 = (ii1 / 10) % 10;
i16 = ii1 % 10;
for(ii2 = 0;ii2 < 100000000;ii2++) {
i15 = ii2 / 10000000;
i14 = (ii2 / 1000000) % 10;
i13 = (ii2 / 100000) % 10;
i12 = (ii2 / 10000) % 10;
i11 = (ii2 / 1000) % 10;
i10 = (ii2 / 100) % 10;
i9 = (ii2 / 10) % 10;
i8 = ii2 % 10;
for(ii3 = 0;ii3 < 100000000;ii3++) {
i7 = ii3 / 10000000;
i6 = (ii3 / 1000000) % 10;
i5 = (ii3 / 100000) % 10;
i4 = (ii3 / 10000) % 10;
i3 = (ii3 / 1000) % 10;
i2 = (ii3 / 100) % 10;
i1 = (ii3 / 10) % 10;
i0 = ii3 % 10;
//ループの中身
}
}
}
}
お礼
ご解答ありがとうございます。 書き直しの方法を詳しくお教えくださってありがとうございます。 C++でもできるのですね。自分ではどうしても解法がわからずしまいでしたので助かりました。 参考にさせていただきたく思います。