C语言每日一练
2022年3月12日

文章目录

  • 题目描述
  • 问题分析
  • 代码实现
  • 运行结果
  • 网上参考

题目描述

小明将养的一缸金鱼分5次出售:第1次卖出全部的一半加1/2条;第2次卖出余下的三分之一加1/3条;第3次卖出余下的四分之一加1/4条;第4次卖出余下的五分之一加1/5条;最后卖出余下的11条。试编程求出原来鱼缸中共有多少条鱼。

问题分析

假设当前金鱼数为y,上一次卖鱼之前金鱼数为x,卖鱼次数为i(从1开始);根据题目,可以得到下面这个公式:



这是一个多项式,需要求出最开始的x的值,使得公式运算到第4次时y=11,在编程上,我们可以用穷举法,穷举第一次的x值)。

代码实现

#include <stdio.h>int main()
{int sum = 0; //总金鱼数int i = 0;int flag = 0;double tmp = 0;for(sum = 11; sum <= 1000; sum++) //穷举范围11~1000{tmp = (double)sum;for(i = 1; i <= 4; i++){tmp = tmp - (tmp + 1) / (i + 1);}if(tmp < 11.000001 && tmp > 10.999999) //最后剩下11条(浮点数判断需要考虑精度问题){flag = 1;   //找到匹配的结果break;}}if(flag)printf("金鱼总数为%d\n", sum);elseprintf("error\n");return 0;
}

运行结果

网上参考

原文链接:http://c.biancheng.net/cpp/html/3317.html

原文部分思路(优化部分)

#include<stdio.h>
int main()
{int i, j, x, flag=0;  /*flag作为控制标志*//*从23开始试探,步长为2*/for( i=23; flag==0; i+=2 ){for( j=1,x=i; j<=4&&x>=11; j++ )if( (x+1) % (j+1) == 0)  /*判断x+1是否能整除j+1*/x -= (x+1) / (j+1);else{x=0;break;}if(j==5 && x==11){printf("原来鱼缸中共有%d条金鱼。\n", i);flag = 1;  /*求出结果,flag置1,退出试探*/}}return 0;
}

C语言每日一练——第86天:出售金鱼问题相关推荐

  1. 6 获取数组中最小值_C语言每日一练8——数组中最大值和最小值

    题目: 利用指针函数,求某数组中的最大值和最小值. 实现代码: /* ================================================================= ...

  2. C语言每日一练——第85天:三色球问题

    C语言每日一练 2022年3月8日 文章目录 题目描述 问题分析 代码实现 运行结果 网上参考 题目描述 一个口袋中放有12个球,已知其中3个是红的,3个是白的,6个是黑的,现从中任取8个,问共有多少 ...

  3. C语言每日一练——第73天:谁是窃贼问题

    C语言每日一练 202年1月8日 文章目录 题目描述 问题分析 代码实现 运行结果 网上参考 题目描述 警察审问4名窃贼嫌疑犯.现在已知,这4人当中仅有一名是窃贼,还知道这4个人中的每个人要么是诚实的 ...

  4. C语言每日一练——第35天:打印菱形

    C语言每日一练 2021年10月13日 题目描述 输入菱形的高度n(必须为奇数),即正中间星号的个数,打印出用星号组成的菱形 分析 要打印菱形,先要构想要打印的图形样子,就比如下图这种: 我们可以根据 ...

  5. C语言每日一练——第28天:要求输出国际象棋棋盘

    C语言每日一练 2021年10月6日 题目描述 要求输出国际象棋棋盘 分析 先看看国际象棋的棋盘的长相: 可以看出,国际象棋棋盘呈正方形,里面包含8x8总共64个小方格,它们黑白相间.要想在控制台输出 ...

  6. C语言每日一练——第10天:求一个矩阵主对角线及副对角线元素之和

    C语言每日一练 2021年9月18日 题目描述 求一个矩阵主对角线及副对角线元素之和 分析 在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,矩阵是高等代数学中的常见工具,也常见于 ...

  7. C语言每日一练——第1天:字母大小写转换

    C语言每日一练 2021年9月9日 本人C语言菜鸟,最近工作中频频出现C语言小错误,遂决定使用笨方法提高我的C语言水平,坚持每天一个C语言小练习,养成C语言手感,从此让编程成为习惯. 题目描述 从键盘 ...

  8. 【C语言每日一练——第1练:字母大小写转换】

    C语言每日一练 2022年6月13日 题目描述 从键盘输入一个大写字母,要求改用小写字母输出 分析 从键盘输入可以使用scanf或getchar等函数. 大写字母是一个字符,字符类型数据在C语言中是以 ...

  9. C语言每日一练——第80天:换分币问题

    C语言每日一练 2022年2月13日 文章目录 题目描述 问题分析 代码实现 运行结果 题目描述 将5元的人民币兑换成1元.5角和1角的硬币,共有多少种不同的兑换方法. 问题分析 列举3元1次方程 1 ...

最新文章

  1. 深度丨当AI遇见区块链,2018年的第一场火,还是第一场泡沫?
  2. web3.js(三)查询智能合约币数量(erc20)
  3. 洛谷 P1343 地震逃生
  4. Ubuntu 18.0安装教程
  5. 带线的无限级下拉树列表-完整示例篇
  6. shell 与 空格
  7. PCB相关的基础知识
  8. acwing3132. 食物(BZOJ3028)
  9. Java的getcelltype用法_java getCellType的替代方法
  10. springmvc resources 配置
  11. 【过程改进】10分钟进阶Nuget
  12. 基于ARM的车牌识别技术研究与实现
  13. 打开visio后屏幕会不停的抖动是怎么回事
  14. 【原创】技术员 Win10 PE 网络版启动工具 V6.2 兼容UEFI双启动
  15. Linux进程间通信-消息队列
  16. python3-曲线拟合(polyfit/polyval)
  17. ThinkPHP5.0 查询条件where()使用
  18. Python爬虫小项目——实现英语翻译功能(四)
  19. 链接服务器“(null)“的 OLE DB 访问接口 “SQLNCLI10“ 返回了消息 “客户端无法建立
  20. 【算法】搜索算法—盲目搜索和启发式搜索

热门文章

  1. python实验收获和反思_反思总结收获前行
  2. 计算机新代理大会优美句子,描写计算机教室的优美句子
  3. pin码忘了怎么办?Win11忘记pin码进不了系统?
  4. twitter全自动发推_我如何在5分钟内自动创建FreeCodeCampers的Twitter列表
  5. 如何在网页上显示腾讯QQ/MSN/旺旺在线洽谈
  6. java跟jsp数据交互的坑
  7. 查询学生表中姓“张”,“李”,“刘”的学生的情况。
  8. 蓝桥杯专题(一)《C语言》
  9. 0xC0000005: 读取位置 0x0000000000000030 时发生访问冲突的解决
  10. LLVM文档目录框架(索引用)