質問編集履歴
3
ソースコードを更新
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -5,7 +5,13 @@ | |
| 5 5 | 
             
            ### 該当のソースコード
         | 
| 6 6 |  | 
| 7 7 | 
             
            ```C++
         | 
| 8 | 
            -
            #include < | 
| 8 | 
            +
            #include <iostream>
         | 
| 9 | 
            +
            #include <queue>
         | 
| 10 | 
            +
            #include <vector>
         | 
| 11 | 
            +
            #include <algorithm>
         | 
| 12 | 
            +
            #include <cmath>
         | 
| 13 | 
            +
            #include <iomanip>
         | 
| 14 | 
            +
             | 
| 9 15 | 
             
            using namespace std;
         | 
| 10 16 |  | 
| 11 17 | 
             
            queue<pair<long double, long double> > p;
         | 
| @@ -14,19 +20,20 @@ | |
| 14 20 | 
             
            void fractale(){
         | 
| 15 21 | 
             
                pair<long double, long double> l, r, temp;
         | 
| 16 22 | 
             
                do {
         | 
| 17 | 
            -
                    l = p.front(); p.pop(); | 
| 23 | 
            +
                    l = p.front(); p.pop();
         | 
| 18 | 
            -
                    r = p.front(); p.pop(); | 
| 24 | 
            +
                    r = p.front(); p.pop();
         | 
| 19 | 
            -
                    long double theta = atan2(r.second-l.second, r.first-l.first); | 
| 25 | 
            +
                    long double theta = atan2(r.second-l.second, r.first-l.first);
         | 
| 20 | 
            -
                    long double leng = sqrt((r.second-l.second)*(r.second-l.second)+(r.first-l.first)*(r.first-l.first)); | 
| 26 | 
            +
                    long double leng = sqrt((r.second-l.second)*(r.second-l.second)+(r.first-l.first)*(r.first-l.first));
         | 
| 21 | 
            -
             | 
| 22 | 
            -
                    //点の設定
         | 
| 23 27 | 
             
                    p.push(l);
         | 
| 24 28 | 
             
                    temp = make_pair(l.first+(r.first-l.first)/3.0, l.second+(r.second-l.second)/3.0);
         | 
| 25 29 | 
             
                    p.push(temp);
         | 
| 30 | 
            +
                    p.push(temp);
         | 
| 26 31 | 
             
                    temp = make_pair(l.first+(r.first-l.first)/2.0+leng*h*sin(theta)/3.0, l.second+(r.second-l.second)/2.0+leng*h*cos(theta)/3.0);
         | 
| 27 32 | 
             
                    p.push(temp);
         | 
| 33 | 
            +
                    p.push(temp);
         | 
| 28 34 | 
             
                    temp = make_pair(l.first+2*(r.first-l.first)/3.0, l.second+2*(r.second-l.second)/3.0);
         | 
| 29 35 | 
             
                    p.push(temp);
         | 
| 36 | 
            +
                    p.push(temp);
         | 
| 30 37 | 
             
                    p.push(r);
         | 
| 31 38 | 
             
                } while (r.first != 100);
         | 
| 32 39 | 
             
            }
         | 
| @@ -42,32 +49,16 @@ | |
| 42 49 | 
             
                    fractale();
         | 
| 43 50 | 
             
                }
         | 
| 44 51 | 
             
                cout << fixed << setprecision(10);
         | 
| 52 | 
            +
                cout << p.front().first << " " << p.front().second << endl;
         | 
| 45 | 
            -
                 | 
| 53 | 
            +
                p.pop();
         | 
| 54 | 
            +
                do {
         | 
| 46 55 | 
             
                    cout << p.front().first << " " << p.front().second << endl;
         | 
| 47 | 
            -
                	p.pop();
         | 
| 56 | 
            +
                	p.pop(); p.pop();
         | 
| 48 | 
            -
                }
         | 
| 57 | 
            +
                } while (p.front().first != 100);
         | 
| 58 | 
            +
                cout << p.front().first << " " << p.front().second << endl;
         | 
| 49 59 | 
             
            }
         | 
| 50 60 | 
             
            ```
         | 
| 51 61 |  | 
| 52 62 | 
             
            ### 試したこと
         | 
| 53 63 |  | 
| 54 | 
            -
             | 
| 64 | 
            +
            回答ありがとうございます。ご指摘の内容をもとに改善したのですが、今度は動作しないようになってしまいました。n>=1の入力を仮定しているので、pop()の部分は問題ないと思うのですが、なぜ動かないかわかりません。
         | 
| 55 | 
            -
             | 
| 56 | 
            -
            n=2では以下のようになる必要があります。
         | 
| 57 | 
            -
            0.00000000 0.00000000
         | 
| 58 | 
            -
            11.11111111 0.00000000
         | 
| 59 | 
            -
            16.66666667 9.62250449
         | 
| 60 | 
            -
            22.22222222 0.00000000
         | 
| 61 | 
            -
            33.33333333 0.00000000
         | 
| 62 | 
            -
            38.88888889 9.62250449
         | 
| 63 | 
            -
            33.33333333 19.24500897
         | 
| 64 | 
            -
            44.44444444 19.24500897
         | 
| 65 | 
            -
            50.00000000 28.86751346
         | 
| 66 | 
            -
            55.55555556 19.24500897
         | 
| 67 | 
            -
            66.66666667 19.24500897
         | 
| 68 | 
            -
            61.11111111 9.62250449
         | 
| 69 | 
            -
            66.66666667 0.00000000
         | 
| 70 | 
            -
            77.77777778 0.00000000
         | 
| 71 | 
            -
            83.33333333 9.62250449
         | 
| 72 | 
            -
            88.88888889 0.00000000
         | 
| 73 | 
            -
            100.00000000 0.00000000
         | 
2
実行例の追加
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -51,4 +51,23 @@ | |
| 51 51 |  | 
| 52 52 | 
             
            ### 試したこと
         | 
| 53 53 |  | 
| 54 | 
            -
            値の見直し、条件の変更をしましたが解決しませんでした。
         | 
| 54 | 
            +
            値の見直し、条件の変更をしましたが解決しませんでした。
         | 
| 55 | 
            +
             | 
| 56 | 
            +
            n=2では以下のようになる必要があります。
         | 
| 57 | 
            +
            0.00000000 0.00000000
         | 
| 58 | 
            +
            11.11111111 0.00000000
         | 
| 59 | 
            +
            16.66666667 9.62250449
         | 
| 60 | 
            +
            22.22222222 0.00000000
         | 
| 61 | 
            +
            33.33333333 0.00000000
         | 
| 62 | 
            +
            38.88888889 9.62250449
         | 
| 63 | 
            +
            33.33333333 19.24500897
         | 
| 64 | 
            +
            44.44444444 19.24500897
         | 
| 65 | 
            +
            50.00000000 28.86751346
         | 
| 66 | 
            +
            55.55555556 19.24500897
         | 
| 67 | 
            +
            66.66666667 19.24500897
         | 
| 68 | 
            +
            61.11111111 9.62250449
         | 
| 69 | 
            +
            66.66666667 0.00000000
         | 
| 70 | 
            +
            77.77777778 0.00000000
         | 
| 71 | 
            +
            83.33333333 9.62250449
         | 
| 72 | 
            +
            88.88888889 0.00000000
         | 
| 73 | 
            +
            100.00000000 0.00000000
         | 
1
再帰が使われていなかった
    
        title	
    CHANGED
    
    | @@ -1,1 +1,1 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            キューがうまくはたらきません
         | 
    
        body	
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            ### 前提・実現したいこと
         | 
| 2 2 |  | 
| 3 | 
            -
            [コッホ曲線](https://onlinejudge.u-aizu.ac.jp/courses/lesson/1/ALDS1/all/ALDS1_5_C)(フラクタル図形を | 
| 3 | 
            +
            [コッホ曲線](https://onlinejudge.u-aizu.ac.jp/courses/lesson/1/ALDS1/all/ALDS1_5_C)(フラクタル図形を求める問題)をキューを用いて解こうとしているのですが、n=2以降うまく働かず困っております。どなたか解決策を教えていただきたいです。
         | 
| 4 4 |  | 
| 5 5 | 
             
            ### 該当のソースコード
         | 
| 6 6 |  | 
