杭电Oj2010(水仙花)、OJ2091(空三角形)

OJ2010水仙花 

#include<stdio.h>
#include<math.h>
int main()
{
int n,m;
while(scanf("%d %d",&m,&n)!=EOF){
int scase = 0;
for(int i = m;i<=n;i++){
if(i == pow((i%10),3) + pow((i/10)%10,3) + pow((i/100)%10 ,3)&&scase){
printf(" %d",i);
scase++;
}
if(i == pow((i%10),3) + pow((i/10%10),3) + pow((i/100)%10 ,3)&&scase==0){
printf("%d",i);
scase++;
}
}
if(scase==0) printf("no");
printf("\n");
}
}

这里要注意一点的是,要注意pow方法在定义中是属于double类型的。


OJ2091(空三角形)

#include<stdio.h>
int main()
{
int n;
int scase = 0;
char a;
while(scanf("%s",&a)!=EOF&&a!='@'){                 //注意,当此处为%c时,
   scanf("%d",&n);                                               //会将空格符读入 
   if(scase!=0&&a!='@') printf("\n");
for(int i = 1;i<=n;i++){
for(int j = 1;j<=2*n-1;j++){
 if(i!=n)
 {
if(j==n-(i-1)) 
{
printf("%c",a);
if(i==1) break;
}
else if(j==n+(i-1))
{
printf("%c",a);
break;
}
else printf(" ");
     }
     if(i==n) printf("%c",a);
}
printf("\n");
}
scase++;
}
}

特别注意的一点是,在输入字符时,如果scanf中显示的为%c,那么可能会将空格符传入,所以用%s;%s是以空格为中断

的传入字符串的方法。

1.注意读题,在题中已说明,在每一行的最后一个字母后是没有空格符的。

2.注意如何使两个输出间有空行,首尾无空行的方法。


猜你喜欢

转载自blog.csdn.net/m0_37632283/article/details/79936306