C語言三色球問題程式碼解析
問題描述
一個口袋中放有12個球,已知其中3個是紅的,3個是白的,6個是黑的,現從中任取8個,問共有多少種可能的顏色搭配?
問題分析
根據問題描述可設任取的8個球中紅球為m個,白球為n個,則黑球為8-m-n個。已知12個球中有3個紅球,3個白球,6個黑球,因此,m的取值範圍為[0, 3],n的取值範圍因此為[0, 3],黑球的個數小於等於6,即 8 - m - n ≤ 6。
演算法設計
迴圈結構檢測 m、n 範圍內的所有可能取值,再代入 8-m-n 中進行驗證,能夠滿足條件 8 - m - n ≤ 6 的那些 m、n 和 8-m-n 的組合即為問題的解。
程式流程圖:
下面是完整的程式碼:
#include<stdio.h>
int main()
{
int m, n, number=0;
printf(" 紅球 白球 黑球\n");
printf("......................\n");
for( m=0; m<=3; m++ )
for( n=0; n<=3; n++ )
if(8-m-n<=6)
printf(" %2d: %d %d %d\n", ++number, m, n, 8-m-n);
return 0;
}
執行結果:
紅球 白球 黑球
......................
1: 0 2 6
2: 0 3 5
3: 1 1 6
4: 1 2 5
5: 1 3 4
6: 2 0 6
7: 2 1 5
8: 2 2 4
9: 2 3 3
10: 3 0 5
11: 3 1 4
12: 3 2 3
13: 3 3 2
Linux公社的RSS地址 : ofollow,noindex" target="_blank">https://www.linuxidc.com/rssFeed.aspx
本文永久更新連結地址: https://www.linuxidc.com/Linux/2018-11/155600.htm