C語言 輸入m,求n。使nmn 1例如 輸入726,應輸出n

2021-03-11 06:58:21 字數 2006 閱讀 3922

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 ...