古埃及的金字塔是世界七大奇迹之一,约千年之前劳动人民建造的金字塔奇观,至今还矗立在尼罗河的西边。但由于多年的侵蚀,以及劳动量的大小,导致现在的金字塔有大有小,有整有残。所以现在就让我们用字母的倒序,向这一世界奇观致敬。出于一些特殊原因,”Z”和”z”两种砖块造价昂贵,需要事先得知其数量。 变量 一个大写字母或者一个小写字母x 金字塔顶层的宽度a(a<=20) 金字塔的高度h(h<=30)
输入: x a h
输出:壮观的字母金字塔的图像
所建金字塔共使用多少个字母砖块Z或字母砖块z
#include "stdio.h"
int main()
{
int a,h,cnt,i,wide,temp,j,cost=0;
char in[1];
char bank[26]="abcdefghijklmnopqrstuvwxyz";
char BANK[26]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
scanf("%c %d %d",&in[0],&a,&h);
if(in[0]>='a'&&in[0]<='z'){
for (i = 0; i < 26; i++){
if(in[0] == bank[i]){
cnt = i;
break;
}
}
}
else{
for (i = 0; i < 26; i++){
if(in[0] == BANK[i]){
cnt = i;
break;
}
}
}
if(in[0]>='a'&&in[0]<='z'){
if(a%2==0){
wide=a;
for(i=1;i<=h;i++){
temp=cnt;
for (j=1;j<=h-i;j++) {
printf(" ");
}
for(j=1;j<=wide/2;j++){
printf("%c",bank[temp]);
if (bank[temp]=='z') cost+=1;
temp-=1;
if(temp<0) temp=25;
}
temp+=1;
temp%=26;
for(j=1;j<=wide/2;j++){
printf("%c",bank[temp]);
if (bank[temp]=='z') cost+=1;
temp+=1;
temp%=26;
}
printf("\n");
wide+=2;
}
printf("所建金字塔共使用%d个字母砖块z\n",cost);
}
else{
wide=a-1;
for(i=1;i<=h;i++){
temp=cnt;
for (j=1;j<=h-i;j++) {
printf(" ");
}
for(j=1;j<=wide/2;j++){
printf("%c",bank[temp]);
if (bank[temp]=='z') cost+=1;
temp-=1;
if(temp<0) temp=25;
}
printf("%c",bank[temp]);
if (bank[temp]=='z') cost+=1;
temp+=1;
temp%=26;
for(j=1;j<=wide/2;j++){
printf("%c",bank[temp]);
if (bank[temp]=='z') cost+=1;
temp+=1;
temp%=26;
}
printf("\n");
wide+=2;
}
printf("所建金字塔共使用%d个字母砖块z\n",cost);
}
}
else{
if(a%2==0){
wide=a;
for(i=1;i<=h;i++){
temp=cnt;
for (j=1;j<=h-i;j++) {
printf(" ");
}
for(j=1;j<=wide/2;j++){
printf("%c",BANK[temp]);
if (bank[temp]=='z') cost+=1;
temp-=1;
if(temp<0) temp=25;
}
temp+=1;
temp%=26;
for(j=1;j<=wide/2;j++){
printf("%c",BANK[temp]);
if (BANK[temp]=='z') cost+=1;
temp+=1;
temp%=26;
}
printf("\n");
wide+=2;
}
printf("所建金字塔共使用%d个字母砖块Z\n",cost*2);
}
else{
wide=a-1;
for(i=1;i<=h;i++){
temp=cnt;
for (j=1;j<=h-i;j++) {
printf(" ");
}
for(j=1;j<=wide/2;j++){
printf("%c",BANK[temp]);
if (BANK[temp]=='z') cost+=1;
temp-=1;
if(temp<0) temp=25;
}
printf("%c",BANK[temp]);
if (BANK[temp]=='z') cost+=1;
temp+=1;
temp%=26;
for(j=1;j<=wide/2;j++){
printf("%c",BANK[temp]);
if (BANK[temp]=='z') cost+=1;
temp+=1;
temp%=26;
}
printf("\n");
wide+=2;
}
printf("所建金字塔共使用%d个字母砖块Z\n",cost*2);
}
}
return 0;
}