C++有一个皮球从a厘米高度开始下落

C++有一个皮球从a厘米高度开始下落,每次落地后反弹回原来
高度的一半。经过多次反弹后,如果皮球是从1厘米的高度
下落,那么皮球触地后就不再反弹了。问皮球一共经过了
多少厘米
输入格式
一个整数a。
输出格式
一个整数。
输入/输出例子1输入:10

输入输出例子怎么不完整

#include <iostream>
using namespace std;
int main()
{
    int a;
    cin>>a;
    int sum = a;
    while(a > 1)
    {
        a/=2;
        sum += a*2;
    }
    cout<<sum<<endl;
    return 0;
}


#include  <iostream>
using namespace std;
#include <stdlib.h>
#include  <string.h>
int main()
{
    int a,m=0;
    cout << "请输入从多cm" << endl;
    cin >> a;
    int sum = a,sum1=0;
    for (int i = 0; i < a; i++)
    {
        sum /=2;
        sum1 += sum*2;
    }
    cout << "需要" << sum1+a << endl;              //为什么要+a?  因为没算第一个洛的位置
}