回答編集履歴
3
コードの説明を追加
    
        answer	
    CHANGED
    
    | @@ -46,4 +46,9 @@ | |
| 46 46 | 
             
            		int mindia = r*r + r*r;  // ★ 追加
         | 
| 47 47 | 
             
                    for (i = 1; i <= r; i++) {     // ★ 100 ではなく r に変更
         | 
| 48 48 | 
             
                        for (j = i + 1; j <= r; j++) {   // ★ j = i + 1 に変更
         | 
| 49 | 
            -
            ```
         | 
| 49 | 
            +
            ```
         | 
| 50 | 
            +
            **追記2**
         | 
| 51 | 
            +
            dia は与えられた長方形の対角線(diagonal)の長さの 2乗です。
         | 
| 52 | 
            +
            newdia は、比較対象の長方形の対角線の長さの 2乗です。
         | 
| 53 | 
            +
            複数の newdia のうち dia より小さいものは不要なので continue でループを継続します。
         | 
| 54 | 
            +
            mindia は、複数の newdia のうち最小のものを保持していて、より小さいものに更新します。
         | 
2
コードの改善
    
        answer	
    CHANGED
    
    | @@ -35,4 +35,15 @@ | |
| 35 35 | 
             
                return 0;
         | 
| 36 36 | 
             
            }
         | 
| 37 37 | 
             
            ```
         | 
| 38 | 
            -
            どこが分からないのかを質問してください。
         | 
| 38 | 
            +
            どこが分からないのかを質問してください。
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            **追記**
         | 
| 41 | 
            +
            150 まで全部調べるのは無駄ですから、次の r までとします。
         | 
| 42 | 
            +
            ```C
         | 
| 43 | 
            +
            #include <math.h>  // sqrt
         | 
| 44 | 
            +
             | 
| 45 | 
            +
            		int r = sqrt(dia) + 1;   // ★ 追加
         | 
| 46 | 
            +
            		int mindia = r*r + r*r;  // ★ 追加
         | 
| 47 | 
            +
                    for (i = 1; i <= r; i++) {     // ★ 100 ではなく r に変更
         | 
| 48 | 
            +
                        for (j = i + 1; j <= r; j++) {   // ★ j = i + 1 に変更
         | 
| 49 | 
            +
            ```
         | 
1
break; 追加
    
        answer	
    CHANGED
    
    | @@ -21,10 +21,11 @@ | |
| 21 21 | 
             
                            if (dia>newdia || (dia==newdia && i<=h)) { // ★ i<=h に変更
         | 
| 22 22 | 
             
                                continue;
         | 
| 23 23 | 
             
                            }
         | 
| 24 | 
            -
            				if (newdia < mindia) {  // else { から変更
         | 
| 24 | 
            +
            				if (newdia < mindia) {  // ★ else { から変更
         | 
| 25 25 | 
             
                                H = i;
         | 
| 26 26 | 
             
                                W = j;
         | 
| 27 | 
            -
            					mindia = newdia; //  | 
| 27 | 
            +
            					mindia = newdia; // ★ 追加
         | 
| 28 | 
            +
            					break;
         | 
| 28 29 | 
             
                            }
         | 
| 29 30 | 
             
                        }
         | 
| 30 31 | 
             
                    }
         | 
