1.甲乙两队进行比赛,甲队A、B、C三人,乙队X、Y、Z三人,比赛名单已经确定。A不和X比,C不和X、Z比,编程确定名单。
#include<stdio.h>
int main()
{
char i,j,k;//i为A的对手,j为B的对手,k为C的对手
for(i='X';i<='Z';i++)//A的对手为X、Y、Z中的一个
{
for(j='X';j<='Z';j++)//B的对手为X、Y、Z中的一个
{
if(i!=j)//隐含条件:A、B、C的对手不能是同一个人
{
for(k='X';k<='Z';k++)//C的对手为X、Y、Z中的一个
{
if(i!=k && j!=k)
{
if(i!='X' && k!='X' && k!='Z')//题目给定的条件
{
printf("赛手名单:A对战%c,B对战%c,C对战%c\n",i,j,k);
break;
}
}
}
}
}
}
return 0;
}
2.在一个陌生的国度,有5种不同的硬币(单位为分):15,23,29,41,67,寻找组成18元08分的可能组合,所有硬币都有足够的数目
#include<stdio.h>
int Kindom(){
int count=0;//用于记录组合数目
for(int i=0;i<=1808/15;i++)//如果硬币组合大于1808分则退出循环
{
for(int j=0;j<=1808/23;j++)
{
if(i*15+j*23>1808) continue;//如果硬币组合大于1808分则记性下一次的循环
for(int k=0;k<=1808/29;k++)
{
if(i*15+j*23+k*29>1808) continue;
for(int m=0;j<=1808/41;m++)
{
if(i*15+j*23+k*29+m*41>1808) continue;
for(int n=0;n<=1808/67;n++)
{
if(i*15+j*23+k*29+m*41+n*67==1808)
{
printf("15:%d 23:%d 29:%d 41:%d 67:%d");//打印可能的硬币组合
count ++;
}
else