當前位置:編程學習大全網 - 編程軟體 - c語言填空 百馬百擔問題

c語言填空 百馬百擔問題

求的是馬的個數,所以沒有歧義

#include <stdio.h>

int main(void){

int i,j,k;

for(i=100/3;i>0;i--)

for(j=100/2;j>0;j--)

for(k=100;k>0;k-=2){

if(((i+j+k)==100)&&((3*i+2*j+k/2 )== 100))

printf("%d ,%d ,%d\n", i,j,k);

}

return 0;

}

樓上的說我剛才邏輯錯誤,其實不然,因為34*3>100所以如果取上值的話,是超過100的,所以直接取下值。

妳說邏輯,那我們從邏輯上來論證:

設r = [a/b]+1, 其中a為擔總數, b為每馬擔數

則當[a/b] = a/b時, 有 r = a/b + 1, r> a/b

當[a/b] < a/b 時, 因為 0 < a/b - [a/b] < 1, 有 a/b < [a/b] + 1 = r, 即 r > a/b

綜上: r > a/b

又:a/b * b = a, 則 必有 r * b > a

根據提設條件對於任意的大馬個數x, 有 x*b <= a

因此 r不屬於x存在的集合,不在取值範圍之列。

仔細思考再下結論

  • 上一篇:求公式:如何通過股票公式選股公式找出長期橫盤的股票
  • 下一篇:工業設計的實物模型可以用3DMAX做讓人家加工實物模型麽?
  • copyright 2024編程學習大全網