问题 H: 22-函数-2-真假硬币

题目描述

小南利用周末的时间去帮助菜场的李叔卖菜,收到了一个一元的假硬币,晚上结账时不小心把它混进一堆真币里面去了。现在知道假币的重量比真币的质量要轻。现在有一个天平,我们知道从n个硬币中找出假币的方法有很多种,最简单的就是两两称重穷举的方法,称重n/2次就可以找出来。但是老师希望小南用最快的速度也就是最少的称重次数把那个假币找出来,你能帮他算算最少的称重次数是多少吗?

输入

多样例。每个样例输入一行,包括一个正整数n(1≤n≤230),表示硬币的数目。当输入的n为0时,结束样例输入。

输出

每个测试样例输出一个正整数,表示最少的称重次数。

样例输入 Copy

3
12
0

样例输出 Copy

1
3

提示

假设有3枚硬币,可以任意取2个放天平上称量一下。 
因为假币的重量比较轻。 
如果天平不平衡,则较轻的那枚就是假币。 
如果天平平衡,则说明这两枚硬币都是真的,而剩下那枚是假币。
所以3枚硬币的最少称重次数是1次,那么4枚呢?5枚呢?可以找出硬币数与称重次数之间的关系。

统筹问题中的真假硬币问题_中公教育网

#include<stdio.h>
#include<stdlib.h>
#include<math.h>//调用pow函数需要的头文件
int main()
{int n=0;while(scanf("%d",&n)!=EOF){int flag=0;if(n==0)break;else{while(pow(3,flag)<n){   flag++;}printf("%d\n",flag);}   }return 0;
}

1、pow函数的应用

pow(x,y)函数的用法及实现算法_蚂蚁辣舞的博客-CSDN博客_pow函数

2、时间超限:

原因:num可能超过int范围,变为负数陷入死循环。

改正:long long num

            int num=0;while(num<n){  flag++;num=pow(3,flag);}

 更优解法:

#include<stdio.h>
#include<stdlib.h>
#include<math.h>//调用pow函数需要的头文件
int main()
{int n=0;while(1){scanf("%d",&n);int flag=0;if(n==0)break;if(n==1){printf("0\n");continue;}//  考虑 n==1 long long num=1;//注意 long long// 乘3可能超int while(num<n){  flag++;num*=3;   }//比用pow函数减少重复计算printf("%d\n",flag);          }return 0;
}

pow函数 真假硬币相关推荐

  1. 113 - Power of Cryptography 浮点数 pow()函数

    uva oj 上的一题. 113 - Power of Cryptography 就是给个 n 1<=n<=200 和 p 1<=p<10^101求个 k 1<=k< ...

  2. pow函数gcc编译提示 undefined reference to `power' 的解决办法

    一个程序,用了pow函数,头文件中也包含了<math.h>文件,但是在编译时,gcc -o ippanduan ippanduan.c  一直提示如下错误: /tmp/ccARJLRg.o ...

  3. UScript中的Pow函数

    这些天越来越发现数学的重要和妙趣了, 由于一些地方需要使用指数次幂来实现更好的效果, 想当然地去找pow函数,把Object和Actor翻了个底朝天 ... 结果可想而知, 也正好,尝试了一把UScr ...

  4. python中pow函数_pow()函数以及Python中的示例

    python中pow函数 Python pow()函数 (Python pow() function) pow() function is a library function in Python, ...

  5. mysql pow函数怎么用_pow函数怎么用

    PHP pow函数表示指数表达式. pow函数怎么用? php pow()函数 语法 作用:pow()函数的作用是将一个数进行n次方计算后返回 语法:pow(X,Y); 参数: X表示要做处理的数字 ...

  6. c+pow函数的头文件_pow()函数以及C ++中的示例

    c+pow函数的头文件 C ++ pow()函数 (C++ pow() function) pow() function is a library function of cmath header ( ...

  7. OJ1061: 顺序输出各位数字(C语言)(谈程序优化问题及pow函数耗时问题)

    题目描述 输入一个整数,从高位开始逐位分割并输出各位数字. 输入 输入一个正整数n,n是int型数据 输出 依次输出各位上的数字,每一个数字后面有一个空格,输出占一行.例如,输入 12345 ,输出 ...

  8. pow()函数的应用

    pow() 函数用来求 x 的 y 次幂(次方),其原型为: double pow(double x, double y); pow()用来计算以x 为底的 y 次方值,然后将结果返回.设返回值为 r ...

  9. python pow函数用法_Python代码中pow()函数具有哪些功能呢?

    摘要: 下文讲述Python代码中pow()函数的功能说明,如下所示: pow函数功能说明 pow() 函数用于 计算 xy(x 的 y 次方) 的值 pow函数语法: import math mat ...

最新文章

  1. Django基础—— 1.WEB框架介绍
  2. AbstractListView源码分析4
  3. 如何将Pcm格式的音频文件转换成Wave格式的文件
  4. .NET Core开发实战(第6课:作用域与对象释放行为)--学习笔记(下)
  5. Laravel Composer 命令大全
  6. LeetCode 1166. 设计文件系统(哈希map)
  7. 简单且有创意的python作品_适合练手的 14 个Python 小项目,趣味十足!
  8. delimiter在mysql中的作用_细细研究MySql中delimiter起到的作用_MySQL
  9. 一步步学习NHibernate(8)——HQL查询(2)
  10. 快速查找文件的工具Everything
  11. C++ 二叉树深度优先遍历和广度优先遍历
  12. yarn 安装使用小记
  13. 苹果电脑操作系统的演变历程
  14. 常用矢量图有哪些格式?AI文件存储为psd分层
  15. 解决Visual Studio 2022 python 中文乱码问题
  16. 计算机网络标准化相关组织
  17. 天空的颜色 454
  18. wps大纲栏显示在右边_隐藏显示word页面标记,就这么几招,你会吗?
  19. Linux 4G模块pppd拨号上网脚本解析
  20. Kademlia详解

热门文章

  1. MyBatis从入门到精通__刘增辉(著)_ 电子工业出版社PDF下载
  2. 使用Scrapy爬取豆瓣电影排行榜
  3. 在Linux上部署第一个web项目
  4. endcap和welltap_Physical only cell的介绍
  5. 使用Display Tag
  6. 常用API部分测试题
  7. 《数学之旅》及《什么是数学》
  8. python爬虫抓取头条街拍美女图片
  9. Docker搭建STF
  10. 省市区三级行政区代码(包含港澳台)sql1