每周算法题

文章目录

  • 每周算法题
  • 一、从三个红球、五个白球、六个黑球中任意取出八个球,且其中必须有白球,输出所有可能的方案。
  • 二、有1、2、3、4数字,组成无重复的三位数
  • 两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。
  • 总结

一、从三个红球、五个白球、六个黑球中任意取出八个球,且其中必须有白球,输出所有可能的方案。

根据题意

  • 红球的数从0-3不等
  • 白球的数从1-5不等(因为必须有白球)
  • 黑球的数从0-6不等
  • 只有当球的总数是8时,才是可行的方案

代码如下

void main()
{int count = 0;for (int red = 0; red <= 3; red++){for (int white = 1; white <= 5; white++){for (int black = 0; black <= 6; black++){if (red+white+black==8){                  printf("%d,%d,%d\n", red, white, black);}count++;}}}printf("%d", count);
}

这里count是为了计算整个循环运行了多少次,这里count结果是140,这就是穷举法,也就是死算.
但它也是可以优化的


void main()
{int count = 0;for (int red = 0; red <= 3; red++){for (int white = 1; white <= 5; white++){int black = 8 - red - white;if (red + white + black == 8){printf("%d,%d,%d\n", red, white, black);}count++;}}printf("%d", count);
}

因为这里当红球和白球的数量固定后,黑球的数量也能够知道,所以不需要再来一个循环了
这次的count结果是20次,算是质的飞跃了

二、有1、2、3、4数字,组成无重复的三位数

根据题意

  • 就是3个循环,每个数都不能相同
void main()
{int count = 0;for (int num1 = 1; num1 <= 4; num1++){for (int num2 = 1; num2 <= 4; num2++){for (int num3 = 1; num3 <= 4; num3++){if (num1!=num2&&num2!=num3&&num3!=num1){printf("%d%d%d\n", num1, num2, num3);}count++;}}}printf("%d", count);
}

这里当然也是可以优化的

void main()
{int count = 0;for (int num1 = 1; num1 <= 4; num1++){for (int num2 = 1; num2 <= 4; num2++){if (num1 != num2){for (int num3 = 1; num3 <= 4; num3++){if (num3!= num2 && num3 != num1){printf("%d%d%d\n", num1, num2, num3);}count++;}}}}printf("%d", count);
}

如果先判断前两个位是否相等,再执行第三位的循环,就能省去不少无用功

两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。

原题:
两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。
己抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和 x,z比,请编程序找出三队赛手的名单。

这题其实同理,但需要注意的是一个常识问题.自己队里的人没办法比赛,所以要提前判断

void main()
{for (char a = 'x'; a <= 'z'; a++){for (char b = 'x'; b <= 'z'; b++){if (a!=b){for (char c = 'x'; c <= 'z'; c++){if (c!=a&&c!=b){if (a != 'x' && c != 'x' && c != 'z'){printf("a-%c,b-%c,c-%c\n", a, b, c);}}}}}}
}

总结

这种算法题其实就是一个逻辑问题,和我一起平时多练多思考吧

每周算法题(从三个红球、五个白球、六个黑球中任意取出八个球,且其中必须有白球,输出所有可能的方案,有1、2、3、4数字,组成无重复的三位数两个乒乓球队进行比赛,各出三人。甲队为a,b,c)相关推荐

  1. 口袋中有红黄蓝白黑5种颜色的球若干个。每次从口袋中任意取出三个球,问得到3中不通过颜色的球的可能取法。(枚举)

    // 121212 第七章例7.7.cpp : 定义控制台应用程序的入口点. // /* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. ...

  2. 口袋中有红黄蓝白黑5种颜色的球若干个。每次从口袋中任意取出三个球,问得到3中不通过颜色的球的可能取法。(枚举、gcc编译)

    1.题目 口袋中有红黄蓝白黑5种颜色的球若干个.每次从口袋中任意取出三个球,问得到3中不通过颜色的球的可能取法.(枚举) 2.代码 #include <stdio.h>void main( ...

  3. Java基础算法题(18):两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三

    查看所有50道基础算法题请看: Java的50道基础算法题 两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单.a说他不和x比,c ...

  4. C语言练习题,三色球抽取,从3个红球,5个白球,6个黑球中任意取出8个作为一组进行输出。在每组中可以没有黑球,但必须要有红球和白球。编程实现以上功能。用函数返回其组合数,在函数中打印每组的组合

    三色球分组 从3个红球,5个白球,6个黑球中任意取出8个作为一组进行输出.在每组中可以没有黑球,但必须要有红球和白球.编程实现以上功能.用函数返回其组合数,在函数中打印每组的组合 函数原型为: int ...

  5. C语言编程>第二周 ⑧ 两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x……

    例题:两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单.a说他不和x比,c说他不和x,z比,请编程序找出. 代码如下: /*程序 ...

  6. Python 两个乒乓球队进行比赛,请编程序找出两队参赛对手的名单,不用库算法

    题目:两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单.a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单 这题看了 ...

  7. 乒乓球比赛 两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比 请编程序找出三队赛手的名单。

    //:两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.   //已抽签决定比赛名单.有人向队员打听比赛的名单.a说他不和x比,c说他不和x,z比 //,请编程序找出三队赛手 ...

  8. 两个乒乓球队进行比赛,各出3人。甲队为ABC三人,乙队为XYZ三人。已抽签决定比赛名单。有人向队员打听 比赛的名单,A说他不和X比,C说他不和X,Z比,请编程找出3对赛手的名单

    /*两个乒乓球队进行比赛,各出3人.甲队为ABC三人,乙队为XYZ三人.已抽签决定比赛名单.有人向队员打听 比赛的名单,A说他不和X比,C说他不和X,Z比,请编程找出3对赛手的名单*/#include ...

  9. java. 三个人比赛怎么写_两个乒乓球队进行比赛,找出三队赛手的名单

    [java]代码库import java.util.ArrayList; /** * 两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛 ...

最新文章

  1. 各种注意力机制PyTorch实现
  2. 图灵十月书讯 ——小长假过后的程序员学习指南
  3. 有趣的Github项目万里挑一 !(附论文、项目链接)
  4. 第一行代码第一章——你的第一行Android代码
  5. sitecore系列教程之如何以编程方式将访客数据关联到联系人卡片
  6. JSPatch真强大!
  7. 解决pytorch softmax警告UserWarning: Implicit ....Change the call to include dim=X as an argument.
  8. 计算机专业审核作业指导书,专业审核作业指导书
  9. python vector 初始化_一文带你走进Python中的数据类
  10. 16复变函数的积分(二)
  11. 【HDU6194】string string string(统计出现k次的子串数目---后缀数组+st表)
  12. linux hasp的加密狗驱动程序,hasp加密狗驱动下载-hasp加密狗驱动(圣天诺加密狗驱动) win7/8/10 官方通用版 - 河东下载站...
  13. 更改Wamp下网站地址栏图标的显示
  14. 人大金仓数据库的备份与还原
  15. 二分类最优阈值确定_结合mRMR选择和IFCM聚类的遥感影像分类算法
  16. 英文连写字体怎么练_漂亮的英语字体是这样练成的!!
  17. 成长与发展---怎么给博士军团当好“博导”?(PL)
  18. 7 11 藏尾诗c语言,为你写诗:11种杂体诗,汉语太神奇
  19. 弱监督学习框架 Detectron2/DRN-WSOD-pytorch 在服务器/windows上配置安装及使用
  20. java计算机毕业设计社区生活超市管理系统源程序+mysql+系统+lw文档+远程调试

热门文章

  1. 分布式通信:发布订阅
  2. JQM---列车时刻查询
  3. 怎样才能做好一场直播
  4. 【通信原理课程设计】利用MATLAB实现PCM编码的语音基带传输系统
  5. kubernetes k8s 云原生技术
  6. hbuilderx打包h5项目白屏
  7. 微信小程序路径带参数跳转
  8. 提高组比赛分析(1)
  9. 反种族主义者是错误的共同种族差异问题
  10. 评定成绩级别和查询学生成绩