本人初学计算机C++语言,请问这道习题怎么做,调了很长时间了。

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int num;
cin>>num;
int n=1;
long long a=0;
for(int i=1;i<60;i++)
{
a=pow(2,n-1);
n++;
a+=a-1;
cout<<a<<endl;
if(a>num)
{
cout<<"获得"<<num<<"颗米"<<"共需要"<<i<<"个棋格。"<<endl;
break;
}
}
return 0;
}