1 / 23

情報科学&情報科学演習

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: }

tocho
Download Presentation

情報科学&情報科学演習

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2009年度 情報科学&情報科学演習 ~ 世界のナベアツに挑戦 ~

  2. 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. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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); }

  13. 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) 

  14. 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) 

  15. 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

  16. 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); }

  17. 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); }

  18. 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); }

  19. 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の付く数字であるかを評価しているので無駄が多い

  20. 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); }

  21. 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

  22. 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

  23. 最大公約数を求めるプログラム 練習:変数 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

More Related