|
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
|