/*
Name: Cantor Table
Author: blackboy @ S.N.P
Date: 08-01-08 23:08
Description: Coded by Dev-C++ 4.9.9.2
*/
#include < stdio.h >
#include < stdlib.h >
#define MAX 20
// 计算并打印Cantor表中第n项的值
int PrintCantor( int n)
{
int i, sum;
if (n < 1 || n > 100000 )
{
printf( " invalid input! " );
return 1 ;
}
sum = 0 ;
for (i = 1 ; sum < n; i ++ )
sum += i;
if (i % 2 == 0 )
printf( " %d/%d " , - n + 1 + sum, n + i - 1 - sum);
else
printf( " %d/%d " , n + i - 1 - sum, - n + 1 + sum);
return 0 ;
}
int main( int argc, char * argv[])
{
int n[MAX];
int i, count;
printf( " # input some positive integers, end with number 0: " );
i = 0 ;
count = 0 ;
do
{
scanf( " %d " , & n[i]);
i ++ ;
count ++ ;
}
while (n[i - 1 ] != 0 );
printf( " # related values in cantor table: " );
for (i = 0 ; i < (count - 1 ); i ++ )
PrintCantor(n[i]);
system( " PAUSE " );
return 0 ;
}