从java到Python的Cantor函数
我用java编写了一个cantor函数,并试图将其转换为Python。谁能给我一些指点吗?我应该将分数作为一个变量进行比较,还是将顶部和底部视为单独的变量 爪哇:从java到Python的Cantor函数,java,python,modular,greatest-common-divisor,Java,Python,Modular,Greatest Common Divisor,我用java编写了一个cantor函数,并试图将其转换为Python。谁能给我一些指点吗?我应该将分数作为一个变量进行比较,还是将顶部和底部视为单独的变量 爪哇: 我猜您对Python没有太多经验,因为boolean flip=true和double temp=top*1.0/bottom是无效的语法。这可能是一个很好的开始。@user3433147我还将补充@Kevin所说的内容,指出您在def下的缩进是错误的。Python中的所有控件结构都需要适当的缩进。我是Python新手,我确实知道空格
我猜您对Python没有太多经验,因为
boolean flip=true
和double temp=top*1.0/bottom
是无效的语法。这可能是一个很好的开始。@user3433147我还将补充@Kevin所说的内容,指出您在def
下的缩进是错误的。Python中的所有控件结构都需要适当的缩进。我是Python新手,我确实知道空格,我只是复制了我已有的内容并粘贴了它。
import java.util.Scanner;
public class asdf {
public static void main(String[] args){
Scanner keyboard = new Scanner(System.in);
System.out.println("ENter the nth ratio you want: ");
int end = keyboard.nextInt();
int count = 0;
int top = 0;
int bottom = 0;
boolean flip = true;
for(int i=0; i<end; i++){
if(flip){
top = i+1;
bottom = 1;
for(int j = 0; j<i+1; j++){
if(count == end){
break;
}
System.out.println(top + "/" + bottom);
top--;
bottom++;
count++;
}
flip = false;
}
else{
top = 1;
bottom = i+1;
for(int j = 0; j<i+1; j++){
if(count == end){
break;
}
System.out.println(top + "/" + bottom);
top++;
bottom--;
count++;
flip = true;
}
}
}
}
}
def cantor(dat):
n=len(dat)
count, top, bottom = 0,0,0
boolean flip = true
for i in range (0,x):
if (flip):
top = i+1
bottom = 1
for j in range(0,top):
if count == 21: break
boolean found = false
double temp = top*1.0/bottom
for k in range(0,n)):
if temp == n[k]:
found = true
break
if !
top = top-1
bottom = bottom+1
count = count+1