百馬百擔c語言編程
⑴ c語言程序來編寫關於百馬百擔問題,最好簡單點
這里的flag不是函數啦,是一個變數。。 如果你是在自學或者暑假復習的話,建議你還是把前面的給弄清楚來吧解釋也沒用的, 如果是臨時做作業或者干什麼的,追問我 本文轉載自 http://www.ncecit.com
⑵ 百馬百擔問題,有100匹馬
#include<stdio.h> void main() { int i, j; for (i=0;i<34;i++)//大馬 for (j=0;j<(100-i*3)/2+1;j++)//中馬 if ((100-i-j)%2==0 && 3*i+2*j+(100-i-j)/2 ==100) printf("%d\t%d\t%d\n",i,j,100-i-j); } 運行列出的幾組數即是可能的組合。
⑶ 百馬百擔問題。有100匹馬馱100擔貨,大馬馱3擔,中馬馱2擔,兩個小馬馱1擔。問有大中小馬各多少
#include <stdio.h>
void main()
{
int big,mid,small,sum=0;
for(big=0;big<33;big++)
for(small=0;small<100;small+=2)
for(mid=0;mid<50;mid++)
{
if(3*big+2*mid+small/2==100&&big+mid+small==100)
{
printf("big:%d mid:%d small:%d ",big,mid,small);
sum++;
}
}
printf("%d ",sum);
}
(3)百馬百擔c語言編程擴展閱讀:
假設大馬有X匹,中馬有Y匹。因為有100匹馬,所以有(100-X-Y)匹。又因為大馬馱3擔,中馬馱2擔,兩個小馬馱1擔,且100匹馬馱100擔貨,所以有二元一次方程等式為3X+2Y+(100-X-Y)/2=100,化簡可得Y=(100-5X)/3。
大馬有X匹,中馬有(100-5X)/3匹,小馬有(200+2X)/3匹。因為大中小馬為整數,所以有:
1、大馬有2匹,中馬有30匹,小馬有68匹。
2、大馬有5匹,中馬有25匹,小馬有70匹。
3、大馬有8匹,中馬有20匹,小馬有72匹。
4、大馬有11匹,中馬有15匹,小馬有74匹。
5、大馬有14匹,中馬有10匹,小馬有76匹。
6、大馬有17匹,中馬有5匹,小馬有78匹。
7、大馬有20匹,中馬有0匹,小馬有80匹。
⑷ c#百馬百擔問題,有100匹馬,馱100擔貨,大馬馱3擔,中馬馱2擔,兩匹
這就是一個基本的3重循環題目:
白馬馱百貨
⑸ 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存在的集合,不在取值范圍之列。
仔細思考再下結論
⑹ 百馬百擔的原理簡介
數學上有百馬百擔,有一百匹馬,一百擔貨,大馬馱三擔,中馬馱二擔,兩匹小馬馱一擔,問大中小馬各多少匹?
試編程求此數學問題。(用C語言編程)
設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存在的集合,不在取值范圍之列。
用for循環列舉,並用if語句判斷符合題意的結果
⑺ 我在用c語言編百馬百擔的問題時 不知道錯哪裡了。這是我編的 速求!!!
這是我以前寫的一個百錢百雞的問題,你這個懶得寫了應該是一樣的,你自己改一下吧
//中國古代數學家張丘建在他的《算經》中提出了著名的「百錢買百雞問題」:雞翁一,值錢五,
//雞母一,值錢三,雞雛三,值錢一,百錢買百雞,問翁、母、雛各幾何?
#include<iostream>
#define xh "*******************************************"
using namespace std;
int main()
{
int jw=0,jm=0,jc=0,jcs=0;
for (int i=0;i<20;i++)
{
for (int j=0;j<30;j++)
{
jw=i*5;
jm=j*3;
jc=100-jm-jw;
jcs=jc*3;
if (jw+jm+jc==100&&i+j+jcs==100)
{
cout<<"雞翁數:"<<i<<"\t雞母數:"<<j<<"\t雞雛數:"<<jcs<<endl;
cout<<i<<"*5="<<i*5<<"\t "<<j<<"*3="<<j*3<<"\t "
<<jcs<<"*1/3="<<jcs/3<<endl;
cout<<xh<<endl;
}
}
}
return 0;
}
⑻ 改正一下C語言百馬百擔問題
#include <stdio.h>
main()
{
int m,n,k;
int sum=0;
printf("各種馱法如下:\n");
for(m=1;m<=100;m++)
for(n=1;n<=100-m;n++)
{
k=100-m-n;
if((3*m+2*n+0.5*k)==100)
{ printf("大馬%3d匹; 中馬%3d匹; 小馬%3d匹.\n",m,n,k);
sum++;
}
}
printf("共有 %d 種馱法.\n",sum);
}
⑼ 100匹馬駝100擔貨,大馬可以馱3擔,中馬可以馱2擔,2匹小馬共馱1擔,問有多少種馱法C語言
#include<stdio.h>
voidmain(){
inta,b,c,n=0;
for(a=0;a<=32;a++)
for(b=0;b<=50;b++)
for(c=0;c<=100;c+=2)
if(a+b+c==100&&a*3+b*2+c/2==100)
{
printf("大馬:%d,中馬:%d,小馬:%d ",a,b,c);
n++;
}
printf("共有%d種馱法",n);
}