回 帖 发 新 帖 刷新版面

主题:请高手帮忙将这个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;
    }
}

回复列表 (共1个回复)

沙发

直接ctrl+c ctrl+v即可!
我知道的C++唯一不兼容的函数就是getch();要改成getchar();
如果要加入C++的特色
可以加上
#include <iostream>
using namespace std;
即可,方便之处就是可以使用cout<<代替printf(),cin>>代替scanf()
另外C++有字符串类,使用时要#include <string.h>
而C是没有这种类的,而是char *取代之!
其他的美食么大变化啊

我来回复

您尚未登录,请登录后再回复。点此登录或注册