230 likes | 377 Views
2009 年度. 情報科学&情報科学演習. ~ 世界のナベアツに挑戦 ~. 3の付く数字を表示するプログラム. 主要部分を抜粋. 9: for (i = 1; i <= 40; i++) { 10: flag = 0; 11: tmp = i; 12: while (tmp != 0) { 13: if (((tmp - 3) % 10) == 0) { 14: flag = 1; 15: break; 16: }
E N D
2009年度 情報科学&情報科学演習 ~ 世界のナベアツに挑戦 ~
3の付く数字を表示するプログラム 主要部分を抜粋 9: for (i = 1; i <= 40; i++) { 10: flag = 0; 11: tmp = i; 12: while (tmp != 0) { 13: if (((tmp - 3) % 10) == 0) { 14: flag = 1; 15: break; 16: } 17: tmp = tmp / 10; 18: } 19: if (flag == 1) printf("%d\n", i); 20: } 型の性質を上手く利用 exercise0207.c
3の付く数字を表示するプログラム(1-1)3の付く数字を表示するプログラム(1-1) i=1の場合(ループ1) i tmp flag 9: for (i = 1; i <= 40; i++) { 1 - - 10: flag = 0; 1 - 0 11: tmp = i; 1 1 0 12: while (tmp != 0) { 1 1 0 13: if (((tmp - 3) % 10) == 0) { 1 1 0 14: flag = 1; 15: break; 16: } 17: tmp = tmp / 10; 1 0 0 18: } 1 0 0 19: if (flag == 1) printf("%d\n", i); 20: } exercise0207.c
3の付く数字を表示するプログラム(1-2)3の付く数字を表示するプログラム(1-2) i=1の場合(ループ2) i tmp flag 9: for (i = 1; i <= 40; i++) { 10: flag = 0; 11: tmp = i; 12: while (tmp != 0) { 1 00 13: if (((tmp - 3) % 10) == 0) { 14: flag = 1; 15: break; 16: } 17: tmp = tmp / 10; 18: } 19: if (flag == 1) printf("%d\n", i); 1 0 0 20: } 1 0 0 exercise0207.c
3の付く数字を表示するプログラム(3-1)3の付く数字を表示するプログラム(3-1) i=3の場合(ループ1) i tmp flag 9: for (i = 1; i <= 40; i++) { 3 0 0 10: flag = 0; 3 0 0 11: tmp = i; 3 3 0 12: while (tmp != 0) { 3 3 0 13: if (((tmp - 3) % 10) == 0) { 3 3 0 14: flag = 1; 3 3 1 15: break; 3 3 1 16: } 17: tmp = tmp / 10; 18: } 19: if (flag == 1) printf("%d\n", i); 3 3 1 20: } 3 3 1 exercise0207.c
3の付く数字を表示するプログラム(13-1)3の付く数字を表示するプログラム(13-1) i=13の場合(ループ1) i tmp flag 9: for (i = 1; i <= 40; i++) { 13 0 0 10: flag = 0; 13 0 0 11: tmp = i; 13 13 0 12: while (tmp != 0) { 13 13 0 13: if (((tmp - 3) % 10) == 0) { 13 13 0 14: flag = 1; 13 13 1 15: break; 13 13 1 16: } 17: tmp = tmp / 10; 18: } 19: if (flag == 1) printf("%d\n", i); 13 13 1 20: } 13 13 1 exercise0207.c
3の付く数字を表示するプログラム(16-1)3の付く数字を表示するプログラム(16-1) i=16の場合(ループ1) i tmp flag 9: for (i = 1; i <= 40; i++) { 160 0 10: flag = 0; 16 0 0 11: tmp = i; 16 16 0 12: while (tmp != 0) { 16 16 0 13: if (((tmp - 3) % 10) == 0) { 16 16 0 14: flag = 1; 15: break; 16: } 17: tmp = tmp / 10; 16 1 0 18: } 16 1 0 19: if (flag == 1) printf("%d\n", i); 20: } exercise0207.c
3の付く数字を表示するプログラム(16-2)3の付く数字を表示するプログラム(16-2) i=16の場合(ループ2) i tmp flag 9: for (i = 1; i <= 40; i++) { 10: flag = 0; 11: tmp = i; 12: while (tmp != 0) { 16 10 13: if (((tmp - 3) % 10) == 0) { 16 1 0 14: flag = 1; 15: break; 16: } 17: tmp = tmp / 10; 16 0 0 18: } 16 0 0 19: if (flag == 1) printf("%d\n", i); 20: } exercise0207.c
3の付く数字を表示するプログラム(16-3)3の付く数字を表示するプログラム(16-3) i=16の場合(ループ3) i tmp flag 9: for (i = 1; i <= 40; i++) { 10: flag = 0; 11: tmp = i; 12: while (tmp != 0) { 16 00 13: if (((tmp - 3) % 10) == 0) { 14: flag = 1; 15: break; 16: } 17: tmp = tmp / 10; 18: } 19: if (flag == 1) printf("%d\n", i); 16 0 0 20: } 16 0 0 exercise0207.c
3の付く数字を表示するプログラム(35-1)3の付く数字を表示するプログラム(35-1) i=35の場合(ループ1) i tmp flag 9: for (i = 1; i <= 40; i++) { 35 0 0 10: flag = 0; 35 0 0 11: tmp = i; 35 35 0 12: while (tmp != 0) { 35 35 0 13: if (((tmp - 3) % 10) == 0) { 35 35 0 14: flag = 1; 15: break; 16: } 17: tmp = tmp / 10; 35 3 0 18: } 35 3 0 19: if (flag == 1) printf("%d\n", i); 20: } exercise0207.c
3の付く数字を表示するプログラム(35-2)3の付く数字を表示するプログラム(35-2) i=35の場合(ループ2) i tmp flag 9: for (i = 1; i <= 40; i++) { 10: flag = 0; 11: tmp = i; 12: while (tmp != 0) { 35 30 13: if (((tmp - 3) % 10) == 0) { 35 3 0 14: flag = 1; 35 3 1 15: break; 35 3 1 16: } 17: tmp = tmp / 10; 18: } 19: if (flag == 1) printf("%d\n", i); 35 3 1 20: } 35 3 1 exercise0207.c
3の倍数と3の付く数字を表示するプログラム?3の倍数と3の付く数字を表示するプログラム? レポートに多く見られた解答 for (i = 1; i <= 40; i++) { flag = 0; tmp = i; while (tmp != 0) { if (((tmp - 3) % 10) == 0) { flag = 1; break; } else if ((tmp% 3) == 0) { ←3の倍数のとき flag = 1; flag=1 break; } tmp = tmp / 10; } if (flag == 1) printf("%d\n", i); }
3の倍数と3の付く数字を表示するプログラム?(検証)3の倍数と3の付く数字を表示するプログラム?(検証) i tmp flag for (i = 1; i <= 100; i++) { 68 - - flag = 0; 68 - 0 tmp = i; 68 68 0 while (tmp != 0) { 68 68 0 if (((tmp - 3) % 10) == 0) { 68 68 0 flag = 1; break; } else if ((tmp% 3) == 0) { 68 68 0 flag = 1; break; } tmp = tmp / 10; 68 6 0 } 68 6 0 if (flag == 1) printf("%d\n", i); } i=68の場合(ループ1)
3の倍数と3の付く数字を表示するプログラム?(検証)3の倍数と3の付く数字を表示するプログラム?(検証) i tmp flag for (i = 1; i <= 40; i++) { flag = 0; tmp = i; while (tmp != 0) { 68 6 0 if (((tmp - 3) % 10) == 0) { 68 6 0 flag = 1; break; } else if ((tmp% 3) == 0) { 68 6 0 flag = 1; 68 6 1 break; 68 6 1 } tmp = tmp / 10; } if (flag == 1) printf("%d\n", i); 68 6 1 } 68 6 1 i=68の場合(ループ2)
3の倍数と3の付く数字を表示するプログラム(ベスト)3の倍数と3の付く数字を表示するプログラム(ベスト) for (i = 1; i <= 40; i++) { flag = 0; if ((i % 3) == 0) { flag = 1; } else { tmp = i; while (tmp != 0) { if (((tmp - 3) % 10) == 0) { flag = 1; break; } tmp = tmp / 10; } } if (flag == 1) printf("%d\n", i); } 3の倍数 3の付く数字 exercise0208.c
3の倍数と3の付く数字を表示するプログラム(1)3の倍数と3の付く数字を表示するプログラム(1) for (i = 1; i <= 40; i++) { flag = 0; tmp = i; while (tmp != 0) { if (((tmp - 3) % 10) == 0) { flag = 1; break; } else if ((i % 3) == 0) { flag = 1; break; } tmp = tmp / 10; } if (flag == 1) printf("%d\n", i); }
3の倍数と3の付く数字を表示するプログラム(1’)3の倍数と3の付く数字を表示するプログラム(1’) for (i = 1; i <= 40; i++) { flag = 0; tmp = i; while (tmp != 0) { if ((i % 3) == 0) { flag = 1; break; } else if (((tmp - 3) % 10) == 0) { flag = 1; break; } tmp = tmp / 10; } if (flag == 1) printf("%d\n", i); }
3の倍数と3の付く数字を表示するプログラム(2)3の倍数と3の付く数字を表示するプログラム(2) for (i = 1; i <= 40; i++) { flag = 0; tmp = i; while (tmp != 0) { if ((i % 3) == 0) { flag = 1; break; } if (((tmp - 3) % 10) == 0) { flag = 1; break; } tmp = tmp / 10; } if (flag == 1) printf("%d\n", i); }
3の倍数と3の付く数字を表示するプログラム(3)3の倍数と3の付く数字を表示するプログラム(3) for (i = 1; i <= 40; i++) { flag = 0; if ((i % 3) == 0) flag = 1; tmp = i; while (tmp != 0) { if (((tmp - 3) % 10) == 0) { flag = 1; break; } tmp = tmp / 10; } if (flag == 1) printf("%d\n", i); } *3の倍数であっても、さらに3の付く数字であるかを評価しているので無駄が多い
3の倍数と3の付く数字を表示するプログラム(4)3の倍数と3の付く数字を表示するプログラム(4) for (i = 1; i <= 40; i++) { flag = 0; tmp = i; while (tmp != 0) { if (((tmp - 3) % 10) == 0 || (i % 3) == 0) { flag = 1; break; } tmp = tmp / 10; } if (flag == 1) printf("%d\n", i); }
3の倍数と3の付く数字を表示するプログラム(ベスト)3の倍数と3の付く数字を表示するプログラム(ベスト) for (i = 1; i <= 40; i++) { flag = 0; if ((i % 3) == 0) { flag = 1; } else { tmp = i; while (tmp != 0) { if (((tmp - 3) % 10) == 0) { flag = 1; break; } tmp = tmp / 10; } } if (flag == 1) printf("%d\n", i); } 3の倍数 3の付く数字 exercise0208.c
3の倍数と3の付く数字を表示するプログラム(トレース)3の倍数と3の付く数字を表示するプログラム(トレース) for (i = 1; i <= 40; i++) { flag = 0; if ((i % 3) == 0) { flag = 1; } else { tmp = i; printf("i=%d: tmp=%d: flag=%d\n", i, tmp, flag); while (tmp != 0) { if (((tmp - 3) % 10) == 0) { flag = 1; break; } tmp = tmp / 10; } } if (flag == 1) printf("%d\n", i); } 数値をチェック(トレース) exercise0208.c
最大公約数を求めるプログラム 練習:変数 x, y, tをトレースしなさい 5: int x = 1234, y = 56, t; 6: 7: printf("gcd(%d,%d)=", x, y); 8: while (y != 0) { 9: t = x; 10: x = y; 11: y = t % x; 12: } 13: printf("%d\n", x); report0401.c