Java 列出最简真分数序列 循环输入一个整数N输出输出一行,分数之间用逗号分开,最后一个分数的后面没有逗号,第一个数前面也没有逗号样例输入40样例输出1/40,3/40,7/40,9/40,11/40,13/40,17/40,19/40,21
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/02 00:06:40
![Java 列出最简真分数序列 循环输入一个整数N输出输出一行,分数之间用逗号分开,最后一个分数的后面没有逗号,第一个数前面也没有逗号样例输入40样例输出1/40,3/40,7/40,9/40,11/40,13/40,17/40,19/40,21](/uploads/image/z/11971103-23-3.jpg?t=Java+%E5%88%97%E5%87%BA%E6%9C%80%E7%AE%80%E7%9C%9F%E5%88%86%E6%95%B0%E5%BA%8F%E5%88%97+%E5%BE%AA%E7%8E%AF%E8%BE%93%E5%85%A5%E4%B8%80%E4%B8%AA%E6%95%B4%E6%95%B0N%E8%BE%93%E5%87%BA%E8%BE%93%E5%87%BA%E4%B8%80%E8%A1%8C%2C%E5%88%86%E6%95%B0%E4%B9%8B%E9%97%B4%E7%94%A8%E9%80%97%E5%8F%B7%E5%88%86%E5%BC%80%2C%E6%9C%80%E5%90%8E%E4%B8%80%E4%B8%AA%E5%88%86%E6%95%B0%E7%9A%84%E5%90%8E%E9%9D%A2%E6%B2%A1%E6%9C%89%E9%80%97%E5%8F%B7%2C%E7%AC%AC%E4%B8%80%E4%B8%AA%E6%95%B0%E5%89%8D%E9%9D%A2%E4%B9%9F%E6%B2%A1%E6%9C%89%E9%80%97%E5%8F%B7%E6%A0%B7%E4%BE%8B%E8%BE%93%E5%85%A540%E6%A0%B7%E4%BE%8B%E8%BE%93%E5%87%BA1%2F40%2C3%2F40%2C7%2F40%2C9%2F40%2C11%2F40%2C13%2F40%2C17%2F40%2C19%2F40%2C21)
Java 列出最简真分数序列 循环输入一个整数N输出输出一行,分数之间用逗号分开,最后一个分数的后面没有逗号,第一个数前面也没有逗号样例输入40样例输出1/40,3/40,7/40,9/40,11/40,13/40,17/40,19/40,21
Java 列出最简真分数序列 循环
输入
一个整数N
输出
输出一行,分数之间用逗号分开,最后一个分数的后面没有逗号,第一个数前面也没有逗号
样例输入
40
样例输出
1/40,3/40,7/40,9/40,11/40,13/40,17/40,19/40,21/40,23/40,27/40,29/40,31/40,33/40,37/40,39/40
Java 列出最简真分数序列 循环输入一个整数N输出输出一行,分数之间用逗号分开,最后一个分数的后面没有逗号,第一个数前面也没有逗号样例输入40样例输出1/40,3/40,7/40,9/40,11/40,13/40,17/40,19/40,21
package com.test.math;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int number = -1;
System.out.print("enter a number..."); //输入任意整数
Scanner reader = new Scanner(System.in);
number = reader.nextInt();
System.out.println(number);
getResult(number);
}
private static void getResult(int number) {
StringBuffer sb = new StringBuffer("");
for (int i = 1; i < number; i++) {
if(commonDivisor(i,number)==1){ //只有最大公约数为1时,是真分数
sb.append("".equals(sb.toString())?i+"/"+number :","+i+"/"+number);
}
}
System.out.println(sb.toString());
}
private static int commonDivisor(int n,int m) { //得到最大公约数
while (n % m != 0) {
int temp = n % m;
n = m;
m = temp;
}
return m;
}
}
最大公约数的求法是辗转相除法,不明白的话网上也可以查一下,很多,程序已经测试,能运行,望楼主采纳...