链接:https://ac.nowcoder.com/acm/contest/327/C
来源:牛客网
题目描述
处女座热爱做物理实验,为了实验,处女座必须要精确的知道物品的质量。处女座准备自己设计一套砝码,每一个砝码都是正整数,这套砝码必须能够精确测量出n以内所有正整数的质量,处女座想要知道至少需要多少个砝码。你可以在天平的任意一边放置砝码。
输入描述:
一行,一个正整数n 1<=n<=10^1000
输出描述:
一个整数,表示最少的砝码数。
输入
20
输出
4
说明
你可以选择1,2,6,11 1=1 2=2 3=1+2 4=6-2 5=6-1 6=6 7=6+1 8=6+2 9=6+2+1 10=11-1 11=11 12=11+1 13=11+2 14=11+2+1 15=11+6-2 16=11+6-1 17=11+6 18=11+6+1 19=11+6+2 20=11+6+2+1
题解
这道题用long double能过
关于 long double 精度范围 http://blog.sina.com.cn/s/blog_6ebd49350101gdgo.html
代码
#include<iostream>
using namespace std;
int main(){
long double n;
cin>>n;
long double cnt=1,sum=1;
int ans=1;
while(sum<n){
cnt*=3;
sum+=cnt;
ans++;
}
cout<<ans<<endl;
return 0;
}