挑战任务

动物园有一只小猴子喜欢吃桃子,不过它有个很独特的习惯,每次都把找到的桃子分成相等的两份,吃掉一份,留一份。如果不能等分,小猴子就会丢掉一个然后再分。第二天再继续这个过程,直到最后剩一个桃子了,也直接扔掉。

有一天,小猴子找到了n个桃子,请问,它在吃这些桃子的过程中,一共要扔掉多少个桃子。

编程要求

  • 补全方法int getNum(int n),计算小猴子总共要扔掉多少个桃子。将最后的结果作为函数的返回值返回。

具体请参见后续测试样例。

测试说明

样例1

输入:

3

输出:

2

样例2

输入:

1544

输出:

3

 

#ifndef _TEST
#define _TEST
#include <iostream>
#include <vector>
using namespace std; class Task{
public:
int getNum(int n){
/********* Begin *********/
int count = 0;
while(n > 1)
{
if (n % 2== 0)
n = n/2;
else
{
n = n-1;
count = count+1;
}
}
return count+1;
/********* End *********/
}
};
#endif

  

#ifndef _TEST
#define _TEST
#include <iostream>
#include <vector>
using namespace std; class Task{
public:
vector<char> inversion(string str){
vector <char> vec;
int index = str.length();
while(index--){
vec.push_back(str[index]);
}
return vec;
}
};
#endif

  

#include <iostream>
#include <vector>
#include <stdio.h>
#include "Task.hpp" using namespace std; int main(){
string str;
getline(cin,str); Task tt;
vector <char> result;
result = tt.inversion(str);
for(int i = 0; i<str.length();i++){
cout << result[i];
}
cout << endl;
}

  

运行结果

最新文章

  1. HTML5 之拖放(drag与drop)
  2. Surface在C++层的创建源码解析
  3. iis设置asp站点
  4. python splinter
  5. yum简单安装apache
  6. macosx安装MySQLdb
  7. Windows下adb push 总是提示Failed to copy &quot;XX.apk&quot; to &#39;system/app&#39;:Read-only file system
  8. sqrt (x) 牛顿迭代法
  9. jQuery异步加载数据添加事件
  10. 慕课linux学习笔记(四)常用命令(1)
  11. Linux APP源码级编译安装
  12. 树莓派的.bashrc和.bash_aliases文件
  13. unity3d c# 产生真正的随机数
  14. Oracle获取时间日期月份星期数
  15. 新浪 股票 API
  16. 阿里开源分布式事务解决方案 Fescar
  17. Quartus16.1布线优化选择,重编译可能会满足时序
  18. mysql的坑
  19. Python全栈开发-执行字符串形式的语句和字符串形式的表达式方法(即exec和eval方法)
  20. Postgresql分表与优化

热门文章

  1. .Net 上传文件和下载文件
  2. Android dialog使用
  3. java多态和继承
  4. RabbitMq(2) 简单消息队列
  5. Vmware 不使用物理内存运行缓慢的处理方法
  6. day31-软件开发规范
  7. 页面中href链接的碰撞
  8. Grafana分析Nginx日志
  9. debian下redis2.8.17安装过程
  10. vue项目动态控制数据变动时箭头样式