高精度問題,C語言,求二的n次方

2022-11-13 15:50:27 字數 3710 閱讀 7363

1樓:

//自己一個一個**敲的,希望對題主有用

int main()

else

//模擬乘2過程

ret[j] *= 2;

ret[j] += iscarry;

if (ret[j]>=10)

else

}//一輪模擬乘2結束, 判斷是否還有進位,//如果有進位,則在下位賦值為1

if (1 == iscarry)

//最後一次模擬需要儲存,總共計算了的長度。

if (i == n - 1)

}//最後格式化輸出,50次一個換行,

//注意計算結果儲存是逆序。如2^10 的儲存結果為4201for (int i = 0; i < retlength; ++i)}}

printf("\n");

}return 0;}

2樓:物理公司的

#include

#include

#define max 100

char a[max],b[max];//用字串進行數字的輸入int x[max+10],y[max+10],z[max*2+10];//積的位數最多是因數位數的兩倍

int main()

}for(i=max*2;i>0;i--)  //刪除0的字首for(;i>=0;i--)  //倒序輸出printf("%d",z[i]);

printf("\n");

}return 0;}

c語言2的n次方,如果n為負數求2的n次方

3樓:匿名使用者

c語言裡,庫檔案#include,裡有pow函式,pow(a,b)表示求a的b次方。

此外,你寫的小於0是在除以2或者說乘1/2,不是在開方或求負數次方。

另外按寫n大於0的情況,你這輸入n應該是整數,不必用double定義n。

僅供參考!

c語言程式設計 求2的n次方

4樓:就是這樣的夜

a=1;

for(;n;n--)

不過你小心了,比如定義的是unsing a=1;則n大於16會溢位,unsigned long a=1則n大於32會溢位。

5樓:匿名使用者

#include

unsigned long pow(unsigned long n)

void main()

6樓:aoi碧

#include//前兩行都是標頭檔案

#include

int main()//定義主函式

printf("%d\n",power);//輸出結果return 0;

}我現在的電腦上沒有軟體,你執行看看,有error就追問,我來改

7樓:

int main()

else

//模擬乘2過程

ret[j] *= 2;

ret[j] += iscarry;

if (ret[j]>=10)

else

}//一輪模擬乘2結束, 判斷是否還有進位,//如果有進位,則在下位賦值為1

if (1 == iscarry)

//最後一次模擬需要儲存,總共計算了的長度。

if (i == n - 1)

}//最後格式化輸出,50次一個換行,

//注意計算結果儲存是逆序。如2^10 的儲存結果為4201for (int i = 0; i < retlength; ++i)}}

printf("\n");

}return 0;}

8樓:

x<

大數的話,要設計演算法

9樓:匿名使用者

還是自己想想比較好,以後。

#include

#include

int main()

c語言求2的n次冪。

10樓:變美的果團

#include

#include

int main()

int n;

unsigned long long sum;

printf("請輸入要計算的n此方:");

scanf("%d",&n);

sum=pow(2,n);

printf("%llu",sum);

return 0;

11樓:

#include

int main()

result = 2 << (m-1);

printf("2^%d = %ld\n",m, result);

return 0;}

12樓:匿名使用者

最簡單的寫法:

a=2<

還有規矩的寫法

a=1;

for(i=1;i<=n;i++)

a=a*2;

c語言中如何算2的n次方

13樓:

#include

#include

int main()

int n;

unsigned long long sum;

printf("請輸入要計算的n此方:");

scanf("%d",&n);

sum=pow(2,n);

printf("%llu",sum);

return 0;

14樓:匿名使用者

有特定的庫函式的,#include

pow(2,n);

2的n次方。

這個函式寫起來也很簡單的。

int pow(int x,int y)

15樓:傲慢雪見

void main()

printf("2的%d次方的值為%ld\n",n,s);}

16樓:

左移n次,就是2的n次方

17樓:匿名使用者

int sum=2;

for(int i=2;i<=n;i++)

c語言中 計算2的n的n次方 n可能大於100

18樓:謇俊晤森燁

因為n/=2其實是n=n/2,而你的n是int

型,編譯器會自動將不是整型數,轉換為整型,19.5放到n中也就是19了

19樓:匿名使用者

用__int64的話可以表達到2的63次方-1,明顯不足夠,那麼就涉及到了高精度數值處理,樓主可以去了解一下這個概念先,我寫了一個程式,可以計算到2的n次方達到10000位數 ,最少可以算到2的3萬次方,希望可以幫到樓主

#include

int main(void)

}for(i=sum-1;i>=0;i--)printf("%d",a[i]);

printf("\n");

}return 0;}

c語言題目 1.編寫程式,可以求出2的n次方值,這裡的n是比較大的整數,比如100。請用陣列儲存

C語言求二元一次方程的根,用C語言求二元一次方程的根

寫成 結果應該不會對的 因為你把公式拆開了p b 2.0 a 這個如果除不淨 那算出的就是近似值了 而且不同的編譯器結果還不同 有的以除數的符號為準 有的以被除數的符號為準 第二個函式呼叫錯了吧 看這裡 p dayu0 a,b,c 函式返回的是 b 2 a 而 p b 2.0 a 相減不就等於 0?...

在c語言程式設計中10的n次方應該怎麼表達

通過pow函式計算結果來表達乘方,形式為 pow 10,n 在c語言中沒有直接的乘方運算子,必須通過庫函式pow來計算。pow函式宣告於math.h,形式為 double pow double x,double y 功能為計算x的y次冪,並將結果返回。學會函式固然重要,但是千萬不要被慣性思維誤導10...

C語言求原碼的補碼問題,C語言原碼補碼問題

必須要用無符號數,位運算的規定就是如此,你想,如果有符號是負數,用哪個來位運算,結果呢 進行與運算是判斷該數是否最大的負數,注意補碼的數值範圍,負數比正數多一個,該數為最小負數,表示範圍內沒有對應的正數 通過補碼來求原碼?你以為補碼原碼是一一對應的嗎?八位補碼,可代表帶符號數 128 127。八位原...