質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

7回答

4654閲覧

C++ ピラミッド

退会済みユーザー

退会済みユーザー

総合スコア0

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2016/02/08 13:23

入力した数のピラミッドを作るプログラムがわかりません。
(例)入力:4

***
*****
*******

このような感じにしたいです。
for文でお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答7

0

丸投げっぽい質問ですが、回答をコピペしても
すぐ次の課題で詰まると思うので、考え方を述べます。


*****
*****
*****
*****

もし↑のような箱形の図形だったら
問題が一気に簡単になりますよね。

For文などで5×4の二重ループを作って
「*」をprintfして終わりです。

問題は今回のピラミッド型なのですが、
(やり方はいろいろあるでしょうが)
一方のループだけ伸ばして行けばいい、
それにはFor文の条件部の上限を増やしていけばいい、
ということに気づくと簡単です。

まあピラミッド型はもう回答出ちゃってますが、
たとえば、ひし形、台形、平行四辺形ならどうなるか、
と応用問題を考えてみると力が付くと思います。

投稿2016/07/21 13:01

LLman

総合スコア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

matobaa

総合スコア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

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

同じ問題をだいぶ前に見ましたよ。teratailで探してみたらありました。
https://teratail.com/questions/32305

投稿2016/07/21 16:05

PineMatsu

総合スコア3579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

telatailを"ピラミッド"で検索すれば答えが見つかりますよd^^

投稿2016/07/21 12:30

cateye

総合スコア6851

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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

ipadcaron

総合スコア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

tamago0224

総合スコア71

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問