Задача
Граффити — один из видов современной варварской живописи. Вася, как и надлежит достойному потомку варваров, решил также заняться этим довольно перспективным с его точки зрения делом и увековечить свое пребывание в школе надписями в стиле граффити.
Так как по рисованию у Васи была твердая «двойка», а он начал еще и изучать английский, после изучения довольно тяжело давшейся ему в произношении третьей буквы английского алфавита он решил увековечивать свои муки в изучении этого опять трудного для него предмета отображением каждого этапа, связанного с изучением очередной буквы, соответствующей надписью на школьной стене.
Художественные изыскания Васи после изучения $3$-й и $7$-й букв приведены в примере выходных данных.
Так как с каждым этапом сделать правильную надпись Васе становилось всё трудней и трудней, напишите программу, которая поможет ему сделать шпаргалку для нанесения очередного узора.
Входные данные
Единственное число $N (3 ≤ N ≤ 26) -$ количество изученных букв английского алфавита.
Выходные данные
Надпись на стене, сделанная Васей после изучения $N$ букв английского алфавита.
Объяснение:
Точками в примере обозначены пробелы для удобства подсчета, так как и с математикой, соответственно, у Васи тоже были проблемы… 🙂
Тесты
# | ВХОДНЫЕ ДАННЫЕ | ВЫХОДНЫЕ ДАННЫЕ |
1 | 3 | a..a a.ab aabc |
2 | 7 | a……a a…..ab a….abc a…abcd a..abcde a.abcdef aabcdefg |
Код программы (string)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <iostream> #include <string> using namespace std; int main() { string s; char q='a'; int n,k,i,j; cin >> n; for (i=0, k=n-1; i<n; i++, k--) { s=s+q; q++; cout << 'a'; for (j=0; j<k; j++) cout << " "; cout << s << "\n"; } return 0; } |
Код программы (c-string)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <iostream> #include <cstring> using namespace std; int main() { char s[30]; char q='a'; int n,k,i,j; cin >> n; for (i=0, k=n-1; i<n; i++, k--) { s[i]=q; q++; cout << 'a'; for (j=0; j<k; j++) cout << " "; for (j=0; j<i+1; j++) cout << s[j]; cout << "\n"; } return 0; } |
Решение задачи
В каждой строке сначала выводим букву $a$. В первой строке выводим $n-1$ количество пробелов и строку $s$, которая содержит изначально
букву $a$. При переходе на новые строки к строке $s$ будем добавлять новую букву, которая идёт следующей в алфавите от последней буквы данной строки. В каждых последующих строках выводим на один пробел меньше и строку $s$. Выводим новые строки, чтобы в итоге вывести последнюю букву под номером $n$ в алфавите.