cantor数表
第一项1/1,第二项1/2,第三项2/1第四项3/1……
1/1 1/2 1/3 1/4 1/5
2/1 2/2 2/3 2/4
3/1 3/2 3/3
4/1 4/2
5/1
输入一个数n ,求第n项
算法分析
这种题目很常见,需要我们程序员以敏锐的目光发掘其中的规律,并用数学的语言进行描述
找出最小k使得s=0.5k(k+1)≥n,那么就在第k斜行;令i=n-s+k;第K行i个数为(k-i+1)/i
代码:(c语言)
#include<cstdio>
int main()
{
int n;
while(scanf("%d",&n))
{int k=1,s=0,i;
for(;;)
{
s+=k;
if(s>=n)
{
i=n-s+k;
printf("%d/%d\n",k-i+1,i);
break;
}
k++;
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载