程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c語言-漢諾塔C語言編程問題,求幫忙

c語言-漢諾塔C語言編程問題,求幫忙

編輯:編程綜合問答
漢諾塔C語言編程問題,求幫忙

Description
大家都聽說過漢諾塔吧?有n個圓盤由小到大排列,套在a柱上,每次只能移動一個圓盤,而且只能大的在下,小的在上,讓你把a柱上的圓盤移到b柱,給你一個多余的c柱,問你最少移動多少次才能完成任務。

Input
輸入有多組數據,每組包括一個整數n(n<=10000000),表示初始狀態下有n個圓盤,當輸入的n為0時,程序結束,n為負的情況不作處理。

Output
對每個輸入,對應一行輸出,每行輸出包括一個整數,即移動的最小次數,因為數目非常大,所以請對9973求余後再輸出。

Sample Input
Original Transformed
1
2
3
4
0

Sample Output
Original Transformed
1
3
7
15

Hint
采用結構:
……
for(;;){
scanf("%d",&n);
if(n==0)
break;
……
printf(……);
……
}
……至少需要2的n次方減1步
這是我寫的代碼,但是數非常大的時候就不能正常輸出了,應該是溢出了,但具體怎麼修改,求幫忙啊圖片

最佳回答:


寫個快速(模)冪運算即可
注意這一條
請對9973求余後再輸出
因為有這一條,所以直接擁int 類型就足夠了,實際上 short 也 完全夠用

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