NewOJ 题解 [newoj-1250-[蓝桥杯2015初赛]方程整数解] (Python)
2022/1/6 11:03:40
本文主要是介绍NewOJ 题解 [newoj-1250-[蓝桥杯2015初赛]方程整数解] (Python),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题目链接
题目描述
方程: a^2 + b^2 + c^2 = 1000
这个方程有正整数解吗?有:a,b,c=6,8,30 就是一组解。
求出 a^2 + b^2 + c^2 = n(1<=n<=10000)的所有解,解要保证c>=b>=a>=1。
输入格式
存在多组测试数据,每组测试数据一行包含一个正整数n(1<=n<=10000)
输出格式
如果无解则输出"No Solution"。
如果存在多解,每组解输出1行,输出格式:a b c,以一个空格分隔
按照a从小到大的顺序输出,如果a相同则按照b从小到大的顺序输出,如果a,b都相同则按照c从小到大的顺序输出。
输入样例
4 1000
输出样例
No Solution 6 8 30 10 18 24
思路
没啥好说的,就是暴力枚举,但是需要注意的是如果用python代码提交的话需要对其进行优化,否则会超时
代码实现
import sys import math as m ls = dict() for i in range(1,10000): ls[i*i] = i for line in sys.stdin: n = eval(line) flag = True for a in range(1,int(m.sqrt(n))+1): for b in range(1,int(m.sqrt(n))+1): d = a**2+b**2 if n-d in ls and a<=b<=ls[n-d]: flag = False print("{:d} {:d} {:d}".format(a,b,ls[n-d])) if flag: print("No Solution")
时间复杂度: O(\(n^2\))
空间复杂度:O(n)
这篇关于NewOJ 题解 [newoj-1250-[蓝桥杯2015初赛]方程整数解] (Python)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门