程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> 設計-計算n位數為止的3的最大冪運算

設計-計算n位數為止的3的最大冪運算

編輯:編程解疑
計算n位數為止的3的最大冪運算

對於一個正整數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;

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved