1樓:巫馬尓絲
把n初始化抄為2,是因為任何數乘襲以1,沒有什bai麼實際變化,初始化為du2可以省略一個迴圈zhi。
n-2的原因是它是用m<=(n+1)!來
dao判定的,所以這個結果n要 -1
而且因為for迴圈每次都會有n++;最後的值要比結果大1,所以也要 -1
n-1-1
2樓:匿名使用者
這裡的bai j 是從 2! 開始的du
數,zhifor迴圈開始 j=1!=1 ,j<=m(m是輸入的數,假dao設為7,則第一次for迴圈1<7) ,故內做容j=j*n得到 j=2!=2 ,n++=3,2!
=2<7,第二次迴圈,j=j*n=3!=6,n++=4,3!<7,第三次迴圈,j=j*n=4!
=12,n++=5,4!>7,for迴圈結束。此時n=5,因為3!
<7<4! 而題目要求位輸入m,求n,使n!<=m<=(n+1)!
,而迴圈結束時n=5,故輸出n要減去2,才可使3!<7<4!成立。
這是最直觀的解釋方法。
如果你輸入的m=1,此時j=1<=(m=1),j=j*n=2,n++=3,第二次迴圈初始條件j<=m不成立,你自己思考一下,就知道為什麼n的初始值為2了。
望採納!
3樓:蕭韞俎雯華
1.把n初始化為2,是因來為任何
源數乘以1,沒有什麼實bai際變化,初始化為du2可以省略一zhi個迴圈。
2.n-2的原因dao是它是用m<=(n+1)!來判定的,所以這個結果n要
-1而且因為for迴圈每次都會有n++;最後的值要比結果大1,所以也要
-1n-1-1
c語言程式設計,輸入兩個正整數m和n(m
4樓:匿名使用者
一、基本方法:
1、輸入m和n;
2、遍歷從m到n的所有整數;
3、每個累加;
4、輸出結果。
參考**:
#include
int main()
二、利用等差數列求和公式。
從m到n的所有整數為等差數列,公差為1,所以可以利用求和公式直接獲得結果。
#include
int main()
三、方法對比:
第一種適用於c語言練習,可以涉及更多知識點。
第二種方法效率更高,適用於實際應用。
5樓:匿名使用者
main()
/* 從m到n的所有數相加 */
for ( i=m;i<=n;i++ )
s+=i;
printf("結果是:%d\n",s);}
6樓:逐夢兮樂
#include
int fun(int a)
我用的呼叫函式輸出,祝你愉快!
7樓:上帝來自地球
**如下,不明白追問!
#include
int main(void)
for(i=m+1; i 數和等於 %ld\n", m, n, sum);}
8樓:絳喵
#include
int main(void)
printf("sum is %d",sum);
}else
return 0;}
c語言:輸入兩個正整數m和n(m≥1,n≤500),輸出m和n之間的所有素數,每行輸出6個
9樓:double_聰
if(flag==1&&n!=1)
這裡錯了你少了=
c語言:輸入2個正整數m和n(m>=1,n<=500),輸出m和n之間的所有素數,每行輸出6個。
10樓:匿名使用者
用count計數,當count%6==0時輸出換行就行了
輸入兩個正整數m和nm《n,求m到n之間包括m和n所
不好意思,這幾天比較忙,現在才看到你的求助。這個程式我建議你不要去用函式求,那樣太麻煩了。樓上的這位寫的一看就知道沒有編譯過,演算法都錯了。這是我寫的,已經編譯通過,簡明易懂,希望對你有幫助。include include int main void for i m i n i 下面是求素數的演算法...
c語言求輸入正整數n,求
其實用遞迴算更簡復 單,再給你制一個吧 include 由於標準math.h中沒bai 有求階du乘函式,所以自己寫zhi一個吧 int jiecheng int n int main include int main void if i 2 1 flag 1 else flag 1 result ...
用c語言輸入自然數n求n同時統計結果中有多
n 應該會求吧.就是1 2 3 4 5 n.1.把數字轉化成字串,統計結果中0的個數.include include int digit int n while n 0 n 0 return d void itoa int n,char des else void itora int n,char ...