入力した数のピラミッドを作るプログラムがわかりません。
(例)入力:4
*
***
*****
*******
このような感じにしたいです。
for文でお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答7件
0
丸投げっぽい質問ですが、回答をコピペしても
すぐ次の課題で詰まると思うので、考え方を述べます。
*****
*****
*****
*****
もし↑のような箱形の図形だったら
問題が一気に簡単になりますよね。
For文などで5×4の二重ループを作って
「*」をprintfして終わりです。
問題は今回のピラミッド型なのですが、
(やり方はいろいろあるでしょうが)
一方のループだけ伸ばして行けばいい、
それにはFor文の条件部の上限を増やしていけばいい、
ということに気づくと簡単です。
まあピラミッド型はもう回答出ちゃってますが、
たとえば、ひし形、台形、平行四辺形ならどうなるか、
と応用問題を考えてみると力が付くと思います。
投稿2016/07/21 13:01
総合スコア5592
0
ベストアンサー
みなさんやってくれてるから僕はふざけてみる:
なるほどこういうことか
python
1n=int(input()) 2triangle=[x for x in range(n)] 3string = lambda n,c: ''.join([c for x in range(n)]) 4print('\n'.join(map(lambda i: "%s%s" % (string(n-i-1, ' '), string(i*2+1,'*')) 5 ,triangle)))
投稿2016/07/22 15:16
総合スコア2493
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
for文でお願いします。
みなさんやってくれてるから僕はふざけてみる:
C++
1#include <iostream> 2#include <vector> 3#include <string> 4#include <numeric> 5#include <algorithm> 6#include <iterator> 7using namespace std; 8 9int main() { 10 int n; 11 cin >> n; 12 vector<int> triangle(n); 13 iota(begin(triangle),end(triangle),0); 14 transform(begin(triangle),end(triangle),ostream_iterator<string>(cout,"\n"), 15 [&](int i) { return string(n-i-1,' ') + string(i*2+1,'*');}); 16}
投稿2016/07/21 20:49
総合スコア16614
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
同じ問題をだいぶ前に見ましたよ。teratailで探してみたらありました。
https://teratail.com/questions/32305
投稿2016/07/21 16:05
総合スコア3579
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
c
1 2int aa = 1; 3int px = 1; 4for (int x=0; x < size; x++) 5{ 6 for (int w=0; w< size-px;w++) printf(" "); 7 for (int g=0; g < aa; g++) 8 { 9 printf("*"); 10 } 11 printf("¥n"); 12 13 aa += 2; 14 px += 1; 15} 16 17
size = 5 のとき、
スペース4,*1
スペース3,*3
スペース2,*5
スペース1,*7
スペース0,*9
oooox
oooxxx
ooxxxxx
oxxxxxxx
xxxxxxxxx
こうなるのかな。
投稿2016/02/08 14:58
総合スコア1693
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
こういうことでいいのでしょうか?
内側のfor文の条件を2n+1にしました。
c++
1#include<iostream> 2 3using namespace std; 4 5int main() { 6 int x; 7 cout << "input value:"; 8 cin >> x; 9 10 for(int i = 0; i < x; i++) { 11 for(int j = 0;j < 2 * i + 1;j++) { 12 printf("*"); 13 } 14 printf("\n"); 15 } 16} 17
投稿2016/02/08 14:51
総合スコア71
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。