主题:请高手帮忙将这个C语言程序转化为C++程序
#include <stdio.h>
#include <math.h>
long caculate(int day,int circlenum);
void main()
{
int n,k;
long num,m;
printf("please input n:");
scanf("%d",&n);
//计算机最多安排的天数,这里包含第一天,第一天的圈数为0
k=(int)(1+sqrt(1+8*n))/2;
num=1;
for(int i=k;i>2;i--)
{
m=caculate(i,n);
num+=m;
printf("%ld ",m);
}
printf("\nk=%d\n",k);
printf("%ld\n",num);
}
long caculate(int day,int circlenum)
{
int x;
long sum;
if(day==3)
if (circlenum%2==0)
return circlenum/2-1;
else
return circlenum/2;
else
{
x=(int)(((double)circlenum)/(day-1)-(day-2)/2.0);
//printf("%d ",x);
sum=0;
for(int i=x;i>0;i--) //对每种安排,分别求出低一级问题的安排数,然后求得总和
{
sum+=caculate(day-1,circlenum-(day-1)*i);
}
return sum;
}
}
#include <math.h>
long caculate(int day,int circlenum);
void main()
{
int n,k;
long num,m;
printf("please input n:");
scanf("%d",&n);
//计算机最多安排的天数,这里包含第一天,第一天的圈数为0
k=(int)(1+sqrt(1+8*n))/2;
num=1;
for(int i=k;i>2;i--)
{
m=caculate(i,n);
num+=m;
printf("%ld ",m);
}
printf("\nk=%d\n",k);
printf("%ld\n",num);
}
long caculate(int day,int circlenum)
{
int x;
long sum;
if(day==3)
if (circlenum%2==0)
return circlenum/2-1;
else
return circlenum/2;
else
{
x=(int)(((double)circlenum)/(day-1)-(day-2)/2.0);
//printf("%d ",x);
sum=0;
for(int i=x;i>0;i--) //对每种安排,分别求出低一级问题的安排数,然后求得总和
{
sum+=caculate(day-1,circlenum-(day-1)*i);
}
return sum;
}
}