老師好:
我想要證明任意連續N個整數乘積都會是N的倍數
我發現有一個現成的程式可以套用(
http://www2.lssh.tp.edu.tw/~jing/teach/c-ex/wh9.txt)
如輸入21 22 23 24 25必定是5的倍數
程式碼:
// while 一組數字的乘積
#include <iostream.h>
#include <stdlib.h>
main()
{
int a,t=1;
cout<<"此程式能計算一組整數數字的乘積。\n";
cout<<"請輸入一個數字(輸入0為結束):";
cin>>a;
if (a!=0) //若輸入值為0則結束程式
{
while(a!=0) //當a不為0則while迴圈計算輸入值之乘積
{
t=t*a; //將輸入之a值相乘
cin>>a;
}
cout<<"計算結果為"<<t<<"\n";
}
system("PAUSE");
}
請問這個程式碼要如何修改成我實際需要的
但我又覺得N!是連續N個數相乘積的特例
似乎底下程式就可以套用
http://www2.lssh.tp.edu.tw/~jing/teach/c-ex/func-1.txt
我該如何切入啊
程式碼:
/* func-1 利用遞迴函數求N! */
#include <stdio.h>
#include <stdlib.h>
main() /* 主程式 */
{
int n;
long fact(); /* 宣告fact()函數為長整數值 */
printf("n!=n*(n-1)!請輸入n值:");
scanf("%d",&n);
printf("%d!=%ld\n",n,fact(n));
system("PAUSE");
return 0;
}
/* 開始fact()函數 */
long fact(int n)
{
if (n==0) /* 當n為0即0!=1則傳回1 */
return(1);
else
return(n*fact(n-1)); /* 呼叫遞迴函數func(n-1) */
}
[
本帖最後由 ksjeng 於 2010-2-14 10:35 PM 編輯 ]