标签:输出 方程 正整数 Scanner int 样例 System PTA
本题要求对任意给定的正整数N,求方程X2+Y2=N的全部正整数解。
输入格式:
输入在一行中给出正整数N(≤10000)。
输出格式:
输出方程X2+Y2=N的全部正整数解,其中X≤Y。每组解占1行,两数字间以1空格分隔,按X的递增顺序输出。如果没有解,则输出No Solution
。
输入样例1:
884
结尾无空行
输出样例1:
10 28
20 22
结尾无空行
输入样例2:
11
输出样例2:
No Solution
代码:
1 import java.util.Scanner; 2 public class two{ 3 public static void main(String[] args){//本题要求对任意给定的正整数N,求方程X2+Y2=N的全部正整数解。按X的递增顺序输出 4 Scanner scan = new Scanner(System.in); 5 int n = scan.nextInt();//获取输入 6 Tools tool = new Tools(); 7 if(!tool.qj(n))System.out.println("No Solution"); 8 //如果没有解就输出错误语句 9 } 10 } 11 class Tools{ 12 public boolean qj(int n){ 13 boolean f = false; 14 for(int i = 1;i < Math.sqrt(n / 2)//只需要取到一半的根号就能找到所有解,不要重复解;i++){ 15 if(Math.sqrt(n - i * i) % 1 == 0) 16 //如果另一个数是整数的话,就输出并且更改f值,确认已有解 17 { 18 System.out.println(i + " " + (int)(Math.sqrt(n - i * i))); 19 f = true; 20 } 21 } 22 return f; 23 } 24 }
标签:输出,方程,正整数,Scanner,int,样例,System,PTA 来源: https://www.cnblogs.com/Imepeto/p/15742953.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。