輸入乙個整數n,輸出n!
//計算n!
//計算n!
#includeint main()
, len = 0, rem = 0, i, j;
for(i = 2; i<=n; i++)//將每次的階乘結果在陣列中倒序儲存,每次與i相乘之後與10求餘個位留下,十位進到陣列的下一位
}for(i = len; i >= 0; i--)//將陣列倒序輸出
printf("%d", num[i]);
return 0;
}
演算法思想:
舉個例子,比如說我們現在得到了4!= 24,在陣列中是以倒序的方式儲存,即42,a[0] = 4,a[1] = 2(陣列下標從1開始),現在要計算5!
第一次迴圈:i=5,j=0,len=1,rem=0
rem=num[0]i+rem=45=20;
num[0]=rem%10=0;
rem=rem/10=2;
第二次迴圈:i=5,j=1,len=1,rem=2
rem=num[1]i+rem=25+2=12;
num[1]=rem%10=2;
rem=rem/10=1;
j==len=1且rem不為0
則len++
第三次迴圈:i=5;j=2;len=2,rem=1;
rem=num[2]i+rem=05+1=1;
num[2]=rem%10=1;
rem=rem/10=0;
所以倒序輸出可得:120
C 小案例 廚房案例
題目描述 小白想嘗試一些新的料理,每個料理需要一些不同的材料,問完成所有的料理需要準備多少種不同的材料。輸入描述 每個輸入包含 1 個測試用例。每個測試用例的第 i 行,表示完成第 i 件料理需要哪些材料,各個材料用空格隔開,輸入只包含大寫英文本母和空格,輸入檔案不超過 50 行,每一行不超過 50...
Java中陣列小案例
class arraydemo system.out.println 陣列中元素個數 arr.length for int i 0 imax max arr x return max 第二種方式獲取最值 public static int getmax 2 int arr return arr ma...
C 多型應用的小案例(計算器)
如果寫乙個計算器類,實現簡單的加減乘除操作,我們初學者很可能會這麼寫 include using namespace std class calculator void setv2 int v intgetresult string oper else if oper private int val...