有假币

有假币题目

方法一   

                #includeint main(){ int n,i,a,b; while(scanf("%d",&n)!=EOF&&n!=0){ i=0; //还没有开始称重i应该赋值为0 while(n>1){ //大于一枚的时候一定要称 n>1 n=n/3;/*由于你要考虑的是最少称重的次数//所以直接取总数的三分之一就可以了(只是因为有最少次数的条件,所以才能这样 ,不然还得考虑不能整除时候多出来的硬币)//以上代码直接取n=n/3就可以了*/ i++; }printf("%d\n",i); } return 0;}

方法二    

               #include #include int main(void){int n;int res;double tmp;while ((std::cin >> n) && n){tmp = log(n)/log(3);res = (int)tmp;if( tmp > res && tmp < res + 1 ) res++;std::cout << res << std::endl;}return 1;}

方法三    

               #include#includeint main(){ int n; while(scanf("%d",&n),n) printf("%.0lf\n",ceil(log(n)/log(3.0))); return 0;}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值