永发信息网

有一个规定,第一次受伤给抚恤金1金币,第二次受伤给抚恤金2金币,第三次给抚恤金4金币.请用c++语言编写

答案:3  悬赏:0  手机版
解决时间 2021-03-19 00:17
  • 提问者网友:戎马万世
  • 2021-03-18 18:19
据说古代某国有这麽一个规定,战士第一次受伤给抚恤金1金币,第二次受伤给抚恤金2金币,第三次给抚恤金4金币,以此类推。现在有一个战士算起来,一共得到65535枚金币。试设计程序,求他曾经受过多少次伤
请用c++语言编写并回答
最佳答案
  • 五星知识达人网友:爱难随人意
  • 2021-03-18 19:30
#includeusing namespace std;int main(){ int j; double a,i; a=65535-1;//减去战士第一次拿抚恤金的金额 i=2; j=0; while(i>1) {a=a/2; i=a; j=j+1; } cout<<"拿了65535枚抚恤金的战士受了:"<
全部回答
  • 1楼网友:你哪知我潦倒为你
  • 2021-03-18 22:30
#include void GetHurt(int a) { int count=1; int gold=1; int n=1,i=1; while(1) { if(gold==a) { cout<
  • 2楼网友:神的生死簿
  • 2021-03-18 21:10
一共获得的金币数是 2^0 + 2^1 + 2^2 + ...... + 2^n,其中n是受伤次数,设为x 那么2x = 2^1 + 2^2 + ... + 2^(n+1) 有2x - x = 2^(n+1)-2^0 即 x = 2^(n+1)-1 那么 x + 1 = 2^(n+1) 于是 log2(x+1) = n+1 即 n = log(x+1)-1 #include #include int main() { double n; double x = 65535; n = log(x+1) / log(2.0) - 1; printf("%g", n); return 0; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯