現代數學的著名證明之一是Georg Cantor證明了有理數是可枚舉的。他是用下面這一張表來證明這一命題的:
我們以Z字形給上表的每一項編號。第一項是1/1,然后是1/2,2/1,3/1,2/2,…
給定N,求第N項。
輸入一個整數N(1≤N≤10000000)。輸出一個分數,即表中的第N項。樣例輸入7樣例輸出1/4本題采用的循環遍歷的方法,下面附上ac代碼。若有疑問或者有更好的方法歡迎提出加以交流。
#include<stdio.h>int main(){ int i,j,k=1,t=1,n; scanf("%d",&n); while(t<=n) { if(k%2==0) { j=k; for(i=1;j>=1&&i<=k;i++) { if(t==n) PRintf("%d/%d ",i,j); j--; t++; } } else if(k%2!=0) { j=1; for(i=k;j<=k&&i>=1;i--) { if(t==n) printf("%d/%d ",i,j); j++; t++; } } k++; } return 0;}
新聞熱點
疑難解答