|  | 
 
15鱼币 
| 本帖最后由 独一无② 于 2015-11-21 16:56 编辑 
 问题一:
 输入钱币,输出兑换成 3分,2分, 1分 面值的人民币方法有几种。我发现用循环做,速度会很慢很慢。
 样例输入:12553   输出:13137761
 
 复制代码# include <stdio.h>
int main()
{
     int a,j,k,i,sum,num=0;
     scanf("%d",&a);
     for(j=1;j<=a;j++)
     {
        for(k=1;k<=a/2;k++)
        {
          for(i=1;i<=a/3;i++)
          {
              sum=i*3+k*2+j;
              if(sum == a)
                num++;
          }
        }
     }
        printf("%d\n",num);
        return 0;
} 
 
 问题二:
 输入 n,求n的n次方的结果最右边那位数。
 如 输入5
 5*5*5*5*5=3125
 输出结果 应为 5;
 
 复制代码# include <stdio.h>
# include <math.h>
int main()
{
   int a,b;
   long c,d;
   scanf("%d",&a);
   for(b=1;b<=a;b++)
   {
      scanf("%ld",&c);
      d=pow(c,c);
      d=d%10;
      printf("%ld\n",d);
   }
}
 
 
 上面的那二个问题,但输入数很大时,我写的代码都不可行,运行太慢了,求优化算法的方法。
 | 
 
最佳答案
查看完整内容 第一题:
# include 
 int main(){
 	
 	int i,j,k,n,ans=0;
 	scanf("%d",&n);
 	int boun1=n/3,boun2=n/2;
 	for(i=0;i |