#include <iostream>
#include <cstdlib>
using namespace std;
/*
Soal:
Diberikan input N (N >= 3), buat N-1 buah segitiga sama sisi dengan panjang sisi = N. Segitiga ke-2, ke-3, dst
diletakkan sedemikian rupa sehingga gabungan salah satu sisi dari semua segitiga yang ada membentuk garis lurus.
Contoh input:
N = 3
Contoh output:
*
* *
* * *
*
* *
* * *
Algoritma:
Tampilkan N-1 buah segitiga di mana segitiga ke-k (k = 1, 2, 3, ..., N-1) memiliki jarak ((k - 1) * N) spasi dari kiri.
Segitiga dibentuk dengan karakter spasi dan bintang. Baris ke-i (i = 1, 2, 3, ..., N) dalam sebuah segitiga berisi
(N - i) spasi yang diikuti i buah bintang. Antara bintang yang satu dengan bintang yang lainnya, dipisahkan oleh 1 spasi.
*/
int main()
{
int N; cout << "N = "; cin >> N;
if (N >= 3)
{
for (int k = 1; k <= (N - 1); k++) {
for (int i = 1; i <= N; i++) {
int kiri = (k - 1) * N; // jarak segitiga ke-k dari kiri (k = 1, 2, 3, ..., N-1)
for (int j = 1; j <= kiri; j++) {
cout << " ";
}
int spasi = N - i; // spasi sebelum bintang pertama pada baris ke-i dalam segitiga (i = 1, 2, 3, ..., N)
for (int j = 1; j <= spasi; j++) {
cout << " ";
}
// bintang pada baris ke-i dalam segitiga (i = 1, 2, 3, ..., N) berikut 1 spasi
for (int j = 1; j <= i; j++) {
cout << "* ";
}
cout << endl;
}
}
}
else
{
cout << "N harus >= 3!" << endl;
}
cout << endl;
system("pause");
}
ariez
Kamis, 05 Januari 2012
Langganan:
Komentar (Atom)