Re: [問題] A的B次方問題
※ 引述《qwe801031 (嗯哼)》之銘言:
: 我是個剛接觸c++的學生
: 老師出了個題目 是2的五次方
: 要我寫個簡單的程式碼
: 我也只會最笨的方式
: int main()
: {
: int b;
: b=2;
: printf("%d的五次方=%d",b,b*b*b*b*b);
: getch();
: return 0;
: }
: 就是給他乘個五次 然後印出來 想請教有別的比較方便的方法嗎
: 爬了文實在看不懂 有些都沒教過不太了解 才來問 有請高手
這方法不笨呀
寫程式有很多方式 只要能達成你要的結果 都是好程式
剩下的只是最佳化或更精簡的寫法
你可以引入math.h函式
就是上面多加一行 #include <math.h>
然後把
printf("%d的五次方=%d",b,b*b*b*b*b);
改寫成
printf("%d的五次方=%d",b,(int) pow(b, 5));
pow語法是float pow(float base, float exp);
base 為基底 exp 為冪數 輸入為浮點形式 輸出也是浮點
因為輸出是浮點 所以用(int)強制轉為整數
不久後你就會遇到型態轉變方面的問題 不過上課會教
就不特別講解了
補充
unsigned long i = 1;
unsigned long a = 2;
unsigned int n = 5;
while(n)
{
if(n & 1)
{
i *= a;
}
a *= a;
n >>= 1;
}
--
如果課堂沒教過pow 也沒教過迴圈
那你寫的就算是最佳解之一
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.119.110
推
10/13 21:56, , 1F
10/13 21:56, 1F
→
10/13 21:56, , 2F
10/13 21:56, 2F
→
10/13 21:56, , 3F
10/13 21:56, 3F
→
10/13 21:57, , 4F
10/13 21:57, 4F
→
10/13 21:57, , 5F
10/13 21:57, 5F
→
10/13 21:58, , 6F
10/13 21:58, 6F
→
10/13 21:59, , 7F
10/13 21:59, 7F
※ 編輯: kikiqqp 來自: 122.116.119.110 (10/13 22:06)
推
10/13 22:09, , 8F
10/13 22:09, 8F
→
10/13 22:09, , 9F
10/13 22:09, 9F
→
10/13 22:10, , 10F
10/13 22:10, 10F
→
10/13 22:10, , 11F
10/13 22:10, 11F
→
10/13 22:10, , 12F
10/13 22:10, 12F
→
10/13 22:11, , 13F
10/13 22:11, 13F
→
10/13 22:11, , 14F
10/13 22:11, 14F
→
10/13 22:12, , 15F
10/13 22:12, 15F
→
10/13 22:14, , 16F
10/13 22:14, 16F
推
10/15 01:52, , 17F
10/15 01:52, 17F
→
10/15 01:53, , 18F
10/15 01:53, 18F
※ 編輯: kikiqqp (49.158.70.171), 04/13/2018 11:40:04
討論串 (同標題文章)