當前位置:首頁 » 編程語言 » c語言母雞生蛋演算法代碼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言母雞生蛋演算法代碼

發布時間: 2022-08-30 00:43:12

① 哥們幫解決這個c語言問題

呵呵,樓上的解法有點誤會了,嘻嘻,可能粗心沒看清題:

首先用3個for循環設計的:公雞定義為n只,母雞為m只,小雞就是(100-n-m)只,這樣並不能限定一定是買100隻雞;

其次:if((x*3*3+y*2*3+z)==300)這個有可能出現小雞的數量是奇數,對原題來說不可能吧。

給出一個可以得出正確答案的代碼,可能演算法不咋樣,循環的條件也定義的過大了點,有點浪費,樓主思考下改改吧
#include<stdio.h>
void main()
{
int x,y,z,count=0;
for(x=0;x<34;++x)
{
for(y=0;y<50;++y)
{
for(z=0;z<300;++z)
{
if(x+y+z==100&&5*x+3*y+z/3==100&&z%3==0)
{
count++;
}
}
}
}
printf("%d\n",t);
}

② 一條簡單的c語言編程題。

for(int i=0; i<=20; i++)
{
for(int i=0; i<34; i++)
{
int k = 100 - 5*i - 3*j;
if(i+j+k == 100)
{
printf("公雞%d 母雞%d 小雞%d", i, j, k);
}
}
}

100元買100隻雞,一直合1元,只有買100隻小雞了

③ 用c語言編寫一個程序

百錢百雞問題中國古代數學家張丘建在他的《算經》中提出了著名的「百錢買百雞問題」:雞翁一,值錢五,雞母一,值錢三,雞雛三,值錢一,百錢買百雞,問翁、母、雛各幾何?
*題目分析與演算法設計設雞翁、雞母、雞雛的個數分別為cocks(x),hens(y),chicks(z),題意給定共100錢要買百雞,若全買公雞最多買20隻,顯然cocks的值在0~20之間;
同理,hens的取值范圍在0~33之間,可得到下面的不定方程: 5x+3y+z/3=100 x+y+z=100 所以此問題可歸結為求這個不定方程的整數解。由程序設計實現不定方程的求解與手工計算不同。在分析確定方程中未知數變化范圍的前提下,可通過對未知數可變范圍的窮舉,驗證方程在什麼情況下成立,從而得到相應的解。
程序解釋
main()

{
int cocks=0,hens,chicks;
while (cocks<=19) //公雞只數小於19
{hens=0;
while(hens<=33) //母雞小於33隻
{chicks=100-cocks-hens;
if (5.0*cocks+3.0*hens+chicks/3.0==100.0)
printf("%d %d %d\n",cocks,hens,chicks);
hens++;
}
cocks++;
}
}

④ C語言請教,非常感謝!

for (int i = 0; i <= 20; ++i)
for (int j = 0; j <= 33; ++j)
for (int k = 0; k <= 100; ++k)
if (i + j + 3 * k == 100 && 5 * i + 3 * j + k == 100)
printf("公雞=%d,母雞=%d,小雞=%d\n", i, j, 3*k);

結果:
公雞=0,母雞=25,小雞=75
公雞=4,母雞=18,小雞=78
公雞=8,母雞=11,小雞=81
公雞=12,母雞=4,小雞=84

非常不好意思,謝謝xys8628提醒還要考慮效率,現在改過:

for (int i = 75; i >= 67; --i)
{
int var1 = 3 * i - 200;
int var2 = i - 3 * var1;
int var3 = 5 * var1 - i;
if (var2 < 0 || var3 < 0 || var2 % 2 || var3 % 2)
continue;
else
printf("公雞=%d,母雞=%d,小雞=%d\n", var2 / 2, var3 / 2, (100 - i) * 3);
}

現在效率比xys8628的快73倍了
其思路是在確定已買小雞花的錢的前提下解2元方程組
5×公雞數 + 3×母雞數 = 100 - 已買小雞花的錢
公雞數 + 母雞數 = 100 - 已買小雞花的錢 × 3
其中67到75的循環是預先計算出的買小雞花費的范圍

⑤ c語言程序設計例題

#include <stdio.h>

main()
{
int nCock;//公雞數
int nHen;//母雞數
int nChick;//小雞數

for(nCock = 0; nCock <= 100 / 5; nCock++)//公雞數最多不超過100/5隻
{
for(nHen = 0; nHen <= (100 - nCock * 5) / 3; nHen++)//母雞數最多不超過(100元-公雞數*5)/3
{
//小雞數=(100元 - 公雞數*5 - 母雞數*3)*3
nChick = (100 - nCock*5 - nHen*3) * 3;

//如果公雞數+母雞數+小雞數正好為100隻,則此情況為一解
if(nCock + nHen + nChick == 100)
printf("公雞%d只,母雞%d只,小雞%d只\n", nCock, nHen, nChick);
}
}
}

⑥ c語言編程:一隻老母雞一天下一個蛋,蛋一天變小雞,小雞一天後變母雞,一百天後有多少雞和蛋

計算機模擬這個過程,就是一個遞推公式。
int n = 100; // days

int hen = 1 ; //開始1隻雞
int egg = 0; // 0個蛋
int chick = 0 ; // 0隻小雞
for(int i=1;i<n;i++){

int tmp = chick;

chick = egg; // 小雞由前一次的蛋孵化

egg = hen; //前一次的雞下蛋
hen += tmp;//以前的雞 和 小雞成長的雞 相加

}
printf("%d,%d,%d",hen,egg,chick);

⑦ C語言求幫助

我沒有理解錯的話你的ijk是指 雞翁雞母雞雛的數量而s則是指總共花的錢吧?這樣的話,總的錢為什麼是s=5*i+3*j+k呢?雞雛不是三隻才一錢嗎?而且買的雞雛數量應該是3的整數倍,所以
for(k=0;k<=100;k++)應該改成 for(k=0;k<=100;k+=3),而 s=5*i+3*j+k;則應改成 s=5*i+3*j+k/3;
最後,你可以算一下,雞翁為零的時候應該是找不到滿足條件的j和k 的。。。

⑧ C語言編程

...............這么多問題建議去網路,即使有人回答也寫不下

⑨ 百錢買百雞C語言編程 公雞5元/只 母雞3元/只 小雞1元/3隻 求所有滿足條件各雞數目 只用一層

#include<stdio.h>

intmain(intargc,constchar*argv[])
{
intgongji,muji=0,xiaoji=0;
for(gongji=0;gongji<=20;muji++)
{

if(gongji*5+muji*3<=100)
{
printf("公雞:%d 母雞:%d 小雞:%d ",gongji,muji,(100-gongji*5-muji*3)*3);
}
else
{
gongji++;muji=0;
}

}
return0;
}