博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
uva11636 - Hello World!
阅读量:6238 次
发布时间:2019-06-22

本文共 1152 字,大约阅读时间需要 3 分钟。

题目大意:一开始有一条语句printf("Hello World!\n");你可以选择复制粘贴,问要输出n行Hello World!最少要复制几次?

分析:大水题,每次复制粘贴当前所有的语句则可以使次数最少,所以答案就是ceil(l(logn)/(log2))。

1 #include 
2 #include
3 #include
4 #include
5 using namespace std; 6 int main() 7 { 8 int n,Case=1; 9 while(scanf("%d",&n)==1)10 {11 if(n<0) break;12 printf("Case %d: %d\n",Case++,(int)ceil(log(n)/log(2)));13 }14 return 0;15 }
View Code

有一道题目跟这个很像:VIJOS-P1361

Description

有n个球,从外表上看不出差别,但有一个球比其他球重,其他N-1个球质量相等。请问:在地球上(MS废话),用天平最少称几次可以称出来?

Input

一个自然数N(0< N< =2^24)

Output

输出用天平最小的称量数m(m< 30000)

Sample Input

8

Sample Output

2
这个题目如何产生最优?我们可以发现称一次最多可以分辨出3个球里的那个假球,称两次则是9,三次则是27,n次为3^n,所以结果就是ceil(l(logn)/(log3))。
1 #include 
2 #include
3 #include
4 #include
5 using namespace std; 6 long long n; 7 int main () 8 { 9 while(scanf("%lld",&n)!=EOF)10 {11 printf("%d\n",(int)ceil(log(n)/log(3)));12 }13 }
View Code

 

转载于:https://www.cnblogs.com/shuzy/p/3187019.html

你可能感兴趣的文章
适配mpvue平台的的微信小程序日历组件mpvue-calendar
查看>>
Consul Config 使用Git做版本控制的实现
查看>>
我们必须要知道的RESTful服务最佳实践
查看>>
百度调整Q2营收预期
查看>>
阿里巴巴智慧建筑(IB)峰会 与筑梦者共建新生态
查看>>
Apache Zeppelin安装及使用
查看>>
Redis实现微博后台业务逻辑系列(四)
查看>>
Power5连接使用DS8000遇到问题处理一例
查看>>
迈克菲实验室:Flame病毒的深度分析
查看>>
用十条命令在一分钟内检查Linux服务器性能[转]
查看>>
深入理解bash及字符串的处理
查看>>
Python异步IO --- 轻松管理10k+并发连接
查看>>
DNS多点部署IP Anycast+BGP实战分析
查看>>
iostat详细使用
查看>>
用户与组
查看>>
【12c新特性】12c中新加入的Enqueue Lock
查看>>
JavaScript语法详解(四)
查看>>
Fail to queue the whole FAL gap in dataguard一例
查看>>
03在Windows Server 2008R2上面建立子域
查看>>
网络系统组成、OSI模型、TCP/IP协议簇
查看>>