1099

来源:互联网 发布:二战网络射击游戏 编辑:程序博客网 时间:2024/06/06 06:54
#include <stdio.h>
#include <iostream>
using namespace std;


void gcd(int &a ,int &b );
int getlen( int  a);


void main()
{
int n;

while( cin>>n )
{
int resultN =  1 ,resultM = 1 ;


for ( int i = n-1 ; i >=1 ;i-- )
{
resultM = resultM* i;
resultN = i * resultN + n * (resultM/i);
gcd(resultN,resultM);
}


int a ,b ,c ;


a = resultN / resultM ;
c = resultN % resultM;
b = resultM;


gcd(resultM,resultN);


if ( c == 0 )
{
printf("%d\n",a);

else
{

int lenB = getlen(b);
int lenA = getlen(a);


for(int i=1;i<=lenA+1;i++)
printf(" ");


printf("%d\n",c);
printf("%d ",a);


for(int j=1;j<=lenB;j++)
printf("-");
printf("\n");


for(int z=1;z<=lenA+1;z++)
printf(" ");
printf("%d\n",b);
}
}


}




void gcd(int &a ,int &b )
{
int i ;
for (i = 22  ; i >=2  ;i-- )
{
if (( a % i == 0 ) && ( b %i == 0 ))
{
a /= i ;
b /= i ;
}
}
}


int getlen( int  a)
{
int sum=0;
while(a>0)
{
sum++;
a/=10;
}
return sum;
}
原创粉丝点击