1. 程式人生 > >一個有趣的程式---三色球問題

一個有趣的程式---三色球問題

問題

一個口袋中放有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>
#include<windows.h> int main() { int m = 0;//紅球數量 int n = 0;//白球數量 int 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); } } } system("pause"); return 0; }

執行結果

這裡寫圖片描述