對於一個正整數n(0<n<80),寫一個輸出n位數以內最大的3的冪運算
例
輸入1
輸出9
輸入2
輸出81
輸入6
輸出531441
輸入60
輸出436673502879206784130402698570834024654748577491697818855443
以下是我自己寫的程序
#include<stdio.h>
#include<string.h>
int main(void)
{
int i,n,sum=1;
char m[999]="1";
scanf("%d",&n);
for(i=1;;i++){
if(strlen(m)>n)
break;
else
sum=sum*3;
sprintf(m,"%d",sum);
}
sum=sum/3;
printf("%d\n",sum);
return 0;
}
n=1~9的時候都沒有問題,從10開始輸出-346101685,大於10的時候開始不輸出數值
求大神幫幫忙 謝謝!
#include
int sum[61],num[61];
int main()
{
int n;
int i;
int l=1,val=0;
scanf("%d",&n);
num[0]=3;
while(l<=n)
{
for(i=0;i<l;i++)
{
sum[i]=num[i];
}
for(i=0;i<l;i++)
{
num[i]=num[i]*3+val;
val=num[i]/10;
num[i]=num[i]%10;
}
if(val!=0) {
num[i]=val;
l=l+1;
val=0;
}
}
for(i=l-2;i>-1;i--)
printf("%d",sum[i]);
printf("\n");
return 0;
}