算法程序设计 之 模糊数字、真假银币(1/8)

news2024/11/18 19:28:38

内容

模糊数字、真假银币

一、目的:

理解并掌握枚举算法的基本思想和设计步骤。

二、内容

1模糊数字

问题描述:一张单据上有一个5位数的编码,因为保管不善,其百位数已经变得模糊不清。但是知道这个5位数是57和67的倍数。现在要设计一个算法,输出所有满足这些条件的5位数,并统计这样的数的个数。

输入:每一行对应一个测试样例,每一行包含4个数字,依次是万位数、千位数、十位数和个位数。最后一行包含四个-1,表示输入结束。

输出:每组测试样例的结果输出占一行,第一个数字表示满足条件的编码个数,后面按升序输出所有满足条件的编码,数字与数字之间用空格隔开。

2 真假银币

问题描述:张三有12枚银币,其中有11枚真币和1枚假币。假币看起来和真币完全一样,但是它们的重量不一样。很遗憾的是,张三不知道假币比真币轻还是重。但他办公室有一架天平,还有一个聪明的助手。经过精心安排每次的称重,助手保证在称3次后确定发现假币。助手想跟张三开一个玩笑,只告诉他每次称重的方案和天平的状态,但是不告诉他哪个是假币,假币比真币轻还是重。请设计一个算法帮助张三辨别真假银币。

输入:第一行包含一个正整数,表示测试数据的组数。每组测试数据有三行,每行表示一次称重的结果。张三和助手事先把银币标号为A~L。每次称重的结果用3个以空格隔开的字符串表示:天平左边放置的银币标号,天平右边放置的银币标号,以及平衡状态。其中平衡状态分别用up、down和even表示,分别表示右端高、右端低和平衡。另外,每次称重天平左右的银币数总是相等的。

输出:每组测试数据的输出占一行,输出假银币的标号,并指明它比真银币轻还是重,轻则输出light,重则输出heavy。

程序代码:

1.

#include<stdio.h>

int main()

{int a1,a2,a4,a5,bai,i,pan_duan,zhi=0,ge_shu=0,x=57,y=67;

      int z,sum;

      int a[10];//因为分别存储十个数0,1,2,3,4,5,6,7,8,9

      printf("请依次输入万位,千位,十位,和个位并且输入-1-1-1-1表示停止");

      scanf("%d%d%d%d",&a5,&a4,&a2,&a1);

      while(a5!=-1)

      {    

ge_shu=0;

             for(bai=0;bai<10;bai++)

             {    

zhi=a5*10000+a4*1000+bai*100+a2*10+a1*1;

                    if((zhi%57==0)&&(zhi%67)==0)

{

                           a[ge_shu]=zhi;

                           ge_shu++;    }    

}

printf("%d",ge_shu);printf(" ");

for(i=0;i<ge_shu;i++)

{printf("%d",a[i]);}

printf("\r\n");

scanf("%d %d %d %d",&a5,&a4,&a2,&a1);

 }

 printf("所有满足57和67倍数条件的五位数有:\n ");

     z=x*y; //最小公倍数

    sum=z;

    for(;sum<10000;)

    {

      if (sum<10000){sum=z+sum;}

      }

    for (;sum<100000; sum+=z)

      {

        printf("%d\n", sum);

}

printf("停止 ");

return 0;

}

2.

#include<stdio.h>

#include<iostream>

#include<cstring>

using namespace std;

char Left[3][7];

char Right[3][7];     

char result[3][7];     

bool jie_guo(char c,bool light);     //light为真表示假设假币为轻

int main()

{

      int t;

      cin>>t;

      while(t--)

{

             for(int i=0;i<3;++i)

                    cin>>Left[i]>>Right[i]>>result[i];

             for(char c='A';c<='L';c++)

{

                    if(jie_guo(c,true)){

                           cout<<c<<"是假币并且比真币 light.\n";

                           break;

                    }

                    else if(jie_guo(c,false)){

                           cout<<c<<"是假币并且比真币 heavy.\n";

                           break;

                    }

             }

      }

      return 0;

}

bool jie_guo(char c,bool light){

      for(int i=0;i<3;i++){  //当假设假币轻时,若假币在右边则右边up,在左边则右边down

             char *pleft,*pright;  

             //当假设假币重时,若假币在右边则右边down,在左边则右边up

             if(light){

                    pleft=Left[i];

                    pright=Right[i];

             }

             else{

                    pleft=Right[i];//当假设假币重时,用指针调换天平的两侧,使得若假币在右边则右边up

                    pright=Left[i];

             }

             switch(result[i][0]){  //天平右边的情况

                    case 'u': //右边轻

                           if(strchr(pright,c)==NULL)

                                  return false;

                           break;

                    case 'e':

                           if(strchr(pleft,c)||strchr(pright,c))

                                  return false;

                           break;

                    case 'd': //右边重

                           if(strchr(pleft,c)==NULL)

                                  return false;

                           break;

             }

      }

      return true;

}

程序测试及运行结果:

1.

2.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/670148.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c++Qt Creator调用 python 完整版 + 解决bug过程

文章目录 创建项目配置python环境导入Python库其他坑点Python.h 头文件报错ModuleNotFoundError: No module named encodings’ 完美解决找不到python文件 成功&#xff01; 文章首发于我的个人博客&#xff1a;欢迎大佬们来逛逛 创建项目 选择创建 qmake 项目&#xff1a; …

SciencePub学术 | 计算机类重点SCIEEI征稿中

SciencePub学术 刊源推荐: 计算机类重点SCIE&EI征稿中&#xff01;影响因子高&#xff0c;对国人友好&#xff01;信息如下&#xff0c;录满为止&#xff1a; 一、期刊概况&#xff1a; 计算机类重点SCIE&EI 【期刊简介】IF&#xff1a;8.0-8.5&#xff0c;JCR1区&am…

【新星计划回顾】第七篇学习-正则表达式-邮箱解释

&#x1f3c6;&#x1f3c6;时间过的真快&#xff0c;这是导师回顾新星计划学习的第七篇文章&#xff01; 在学习过程中&#xff0c;学员们也咨询了很多问题&#xff0c;我把一些问题整理以文章形式总结分享下。 最近这段时间非常忙&#xff0c;虽然导师首次参与新星计划活动已…

(八)矢量数据的空间分析——叠置分析②

矢量数据的空间分析——叠置分析② 目录 矢量数据的空间分析——叠置分析② 1.交集取反1.1图解1.2用法1.3操作步骤 2.图层联合2.1图解2.2用法2.3操作步骤 3.修正更新3.1图解3.2用法3.3操作步骤 1.交集取反 输入要素和更新要素中不叠置的要素或要素的各部分将被写入到输出要素类…

Android——基本控件(下)(十四)

1. 滚动视图&#xff1a;ScrollView 1.1 知识点 &#xff08;1&#xff09;掌握滚动视图的主要作用&#xff1b; &#xff08;2&#xff09;可以使用滚视图进行布局&#xff1b; 1.2 具体内容 范例&#xff1a; <ScrollView xmlns:android"http://schemas.android…

执行Windows数据恢复的有效指南!

​被删除的文件真的没有了吗&#xff1f; 在Windows上&#xff0c;删除的文件会被放在哪里&#xff1f;发生的事情告诉我们&#xff0c;这些最近和永久删除的文件可能在数据覆盖之前仍存在于你的Windows电脑上。 在删除之后&#xff0c;回收站会自动保留这些最近删…

【Mysql索引数据结构与算法】

脑图链接 一、索引 什么是索引 索引指的是数据库管理系统中一个排序的数据结构&#xff0c;以协助快速查询、更新数据库表中的数据。类似于书籍的目录&#xff0c;用于快速定位到所需内容、数据的页码位置。 优点&#xff1a;提高数据检索的效率&#xff0c;降低数据库的IO成…

TC8:UDP_FIELDS_06-10

UDP_FIELDS_06: Fields - Total Length 目的 验证DUT发送的UDP报文的Total Length字段的正确性 测试步骤 Tester:让DUT发送UDP消息,数据大小为udpUserDataSizeTester:监听在DIface-0上DUT:发送消息Tester:验证接收到的UDP消息的Total Length字段的值为udpUserDataSize+8期…

Ansys Zemax | 内窥镜物镜系统初始结构的优化提升(上)

概述 本文分为内窥镜系统简介、主要结构、系统分析、性能提升和总结五个部分&#xff0c;介绍了内窥镜系统的主要结构&#xff0c;并讨论了如何在 OpticStudio 中根据内窥镜物镜系统的初始结构进行像差分析&#xff0c;以及如何对其进行后续的优化提升。(联系我们获取文章附件…

【设计模式】SpringBoot优雅使用策略模式

文章目录 1.概述1.1.简述策略模式 2.实现方法2.1.实现思路2.2.实现代码2.3.策略拓展2.4.执行调用 3.总结 1.概述 本篇文章主要会描述SpringBoot与策略模式的结合使用&#xff0c;因为不涉及到理论部分&#xff0c;所以在阅读本篇之前&#xff0c;需要对策略模式的理论已经有了…

<C++> C++11 新的类功能

C11 新的类功能 1.默认成员函数 原来C类中&#xff0c;有6个默认成员函数&#xff1a; 构造函数析构函数拷贝构造函数拷贝赋值重载取地址重载const取地址重载 最后重要的是前4个&#xff0c;后两个用处不大。默认成员函数就是我们不写编译器会生成一个默认的。 C11 新增了两…

大家知道什么是CDN吗?对网站有什么帮助?

&#x1f482; 个人网站:【海拥】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 目录 前言什么是CDN&#xf…

【Python 随练】自由落体运动

题目&#xff1a; 一球从 100 米高度自由落下&#xff0c;每次落地后反跳回原高度的一半&#xff1b;再落下&#xff0c;求它在第 10 次落地时&#xff0c;共经过多少米&#xff1f;第 10 次反弹多高&#xff1f; 简介&#xff1a; 在本篇博客中&#xff0c;我们将解决一个物…

华为OD机试之阿里巴巴找黄金宝箱(IV)(Java源码)

阿里巴巴找黄金宝箱(IV) 题目描述 一贫如洗的樵夫阿里巴巴在去砍柴的路上&#xff0c;无意中发现了强盗集团的藏宝地&#xff0c;藏宝地有编号从0-N的箱子&#xff0c;每个箱子上面有一个数字&#xff0c;箱子排列成一个环&#xff0c;编号最大的箱子的下一个是编号为0的箱子。…

[进阶]网络通信:概述、IP地址、InetAddress

什么是网络编程&#xff1f; 可以让设备中的程序与网络上其他设备中的程序进行数据交互&#xff08;实现网络通信的&#xff09;。 Java提供的网络编程解决方案就是在java.net.*包下进行网络编程。 基本的通信架构 基本的通信架构有2种形式&#xff1a;CS架构&#xff08;Cl…

C++IO流和类型处理(11)

IO流 IO流包括 标准IO流&#xff0c;字符串流&#xff0c;文件流 标准IO流 基础使用 #include <iostream> //包括istream和ostream cin >> ----- 标准输入 cout<< ----- 标准输出 clog<< ----- 带缓冲区的标准错误 cerr<< ----- 不带缓冲…

lazada、速卖通、煤炉、eBay 、亚马逊测评环境系统:如何掌握核心养号技巧?

作为一个准备跨足测评行业的业者&#xff0c;或是一个正在考虑将电商业务转向测评服务的卖家&#xff0c;一份详尽的养号指南绝对是你不可错过的知识宝库。 跨境电商平台无疑是巨大的数据中心&#xff0c;它们不仅检测你的设备参数和IP&#xff0c;还分析你的购物习惯&#xf…

mapbox-gl 点位编辑功能

文章目录 前言方式一&#xff1a;借助 Marker添加自定义icon添加POI图层&#xff0c;绑定对应事件基于Marker交互创建自定义Marker编辑 / 创建POI 方式二&#xff1a;采用 mapbox-gl-draw 插件总结 前言 矢量在线编辑是gis常用的编辑功能&#xff0c;兴趣点&#xff08;POI&am…

力扣算法练习(一)

目录 1. 两数相加&#xff08;2&#xff09; 2. 寻找两个正序数组的中位数&#xff08;4&#xff09; 1. 两数相加&#xff08;2&#xff09; 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储…

MySQL 中的常用函数详解

0️⃣前言 MySQL是一种常用的关系型数据库管理系统&#xff0c;它提供了许多内置函数来处理数据。本文将介绍MySQL中的各种常用函数&#xff0c;包括字符串函数、日期函数、数学函数、聚合函数等。 文章目录 0️⃣前言1️⃣字符串函数1.1CONCAT函数1.2SUBSTRING函数1.3REPLACE函…