全国高校绿色计算大赛 预赛第一阶段(C++)第2关:扔桃子
2024-10-13 21:48:34
挑战任务
动物园有一只小猴子喜欢吃桃子,不过它有个很独特的习惯,每次都把找到的桃子分成相等的两份,吃掉一份,留一份。如果不能等分,小猴子就会丢掉一个然后再分。第二天再继续这个过程,直到最后剩一个桃子了,也直接扔掉。
有一天,小猴子找到了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;
}
运行结果
最新文章
- HTML5 之拖放(drag与drop)
- Surface在C++层的创建源码解析
- iis设置asp站点
- python splinter
- yum简单安装apache
- macosx安装MySQLdb
- Windows下adb push 总是提示Failed to copy ";XX.apk"; to &#39;system/app&#39;:Read-only file system
- sqrt (x) 牛顿迭代法
- jQuery异步加载数据添加事件
- 慕课linux学习笔记(四)常用命令(1)
- Linux APP源码级编译安装
- 树莓派的.bashrc和.bash_aliases文件
- unity3d c# 产生真正的随机数
- Oracle获取时间日期月份星期数
- 新浪 股票 API
- 阿里开源分布式事务解决方案 Fescar
- Quartus16.1布线优化选择,重编译可能会满足时序
- mysql的坑
- Python全栈开发-执行字符串形式的语句和字符串形式的表达式方法(即exec和eval方法)
- Postgresql分表与优化