杭电ACM2009求数列的和&&&&杭电ACM2010水仙花数----20140724

来源:互联网 发布:java 代理模式详解 编辑:程序博客网 时间:2024/05/22 02:01

2009----

#include<stdio.h>
#include<math.h>
main()
{
 int m,i;
 double n,sum;
 while(scanf("%lf%d",&n,&m)!=EOF)
 {   sum=n;
  for(i=1;i<m;i++)
  { n=sqrt(n);
   sum+=n;
  }
  printf("%.2lf\n",sum);
 }
 return 0;
}

PS:n=sqrt(n)每次是它本身的的开方所以不用换变量。#include<math.h>对函数引用的头文件。

 

 

2010----

 

#include<stdio.h>
main()
{     int m,n,i,a,b,c,t=0;
      while(scanf("%d%d",&m,&n)!=EOF)
      {  t=0;
        if(m>=100&&n>=m&&n<=999)
          { for(i=m;i<=n;i++)
               {  a=i%10;
                  b=i/10%10;
                  c=i/100;
                  if(i==a*a*a+b*b*b+c*c*c)
                  {  
                    if (t!=0)  printf(" ");
                    printf("%d",i); t++;
                   }
               }
                if(t==0) printf("no\n");
                else printf("\n");
         }
      }
       return 0;
}

PS:对于输出,如果存在水仙花数则输出,并且t++,输出空格;如果没有在判断完所有数之后跳出循环,t==0输出no,并且对下一组数输出换行。换行需在跳出循环后输出。
0 0