2847648_re.cc
来自「做的POJ的一些题目」· CC 代码 · 共 44 行
CC
44 行
#include<iostream>
#include<math.h>
using namespace std;
long long int f(int n,int m)
{
if(n<=0 || m<=0)
return 0;
if(m==1 || n==1)
return 1;
if(m>n)
return f(n,n);
if(n==m)
{
int k=m;
while(k%2==0)
k=k/2;
if(k==1)
return 1+f(n,n/2);
else
return f(n,n-1);
}
if(n>m)
{
int k=m;
while(k%2==0)
k=k/2;
if(k==1)
return f(n,m/2)+f(n-m,m);
else
return f(n,m-1);
}
}
int main()
{
int n;
while(true)
{
scanf("%d",&n);
cout<<f(n,n)<<endl;
}
system("pause");
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?