1361: 吃大虾 (改编)

来源:互联网 发布:翻墙看视频软件 编辑:程序博客网 时间:2024/04/26 18:15

1361: A. Mr.J 吃大虾 (改编)

难度: 倔强青铜    时间限制: 1000MS   空间限制: 64MB   提交数: 80   通过数: 38

题目内容

[2017 江苏科技大学 程序设计竞赛]

A. Mr.J 吃大虾 (改编)

题目描述

Mr.J 很爱吃大虾,但是他有个坏习惯,每次都把做好的大虾分成相等的两份,吃掉一份,留一份。如果不能等分,他就会扔掉一只大虾再分。第二天再继续这个过程,直到最后剩一个大虾,直接丢掉。有一天 Mr.J 买了 X 个大虾。现在我们想知道,他在吃的过程中,一共要丢掉多少只大虾。

输入描述

有多组测试数据,每行一个正整数 X,表示 Mr.J 买的虾的个数。

X 不超过 int 类型所能表示的范围。

输出描述

对每组测试数据,输出一行答案。

输入样例

2333

23333

233333

输出样例

6

8

12

#include <iostream>using namespace std;int main(){int n;while (cin >> n) {int cnt = 0; //计数 while (n != 1) {if (n % 2 == 1) {n--; cnt++;}n = n / 2;}cout <<  cnt  + 1 << endl;} return 0;}


原创粉丝点击