对于一个数组{a,b,c}满足a<b<c,a的平方+b的平方=c的平方;
现在已知 a+b+c=1000;求abc的乘积
现在已知 a+b+c=1000;求abc的乘积
解决方案 »
- SCJ泛型题目 求解P
- 问一个正则表达式的问题
- 为什么静态方法中不能用this和super关键字
- 我要这样在控制台输出咋办:System.out.print("sum = %s , %s) ",proName, MyVersion);
- 初学者请教jscrollpane的问题
- sb.append('*');和sb=sb.append('*');有什么区别?
- 求教:关于网页运行"applet"访问本地文件系统的问题?解决给分,谢谢!!!
- 请大虾推荐用于简单图形处理的包
- 请问如何用Solaris的脚本来跑java程序?如何停止?用kill么,怎么用?
- 还有搞swing开发的前辈没有,JTable数据绑定有好的方法没有
- 在DOS下,编译程序,提示“ 软件包 org.htmlparser 不存在”。
- 如何对map的value进行升序排序 请高手指点!!!
周长1000
求a*b*c;
for (int j = i + 1; 1000 - i - j > j; j++) {
int k = 1000 - i - j;
if (i * i + j * j == k * k) {
System.out.printf("%d %d %d", i, j, k);
System.out.println(i * j * k);
break;
}
}
}这是我的解法,抛砖引玉
比如345,那么3n,4n,5n也是勾股数。所以应该算a+b+c能不能被1000整除
周长1000
求a*b*c;
==================
这个才是莫名其妙!
看出来是直角三角形,周长,如果仅仅到这,并不能使问题的求解变得简单,这也是我说没多大意义的原因。
既然是直角三角形,那就是勾股数了。
把问题转化成【如何快速求勾股数】,这才是真正看出问题所在
#include<iostream>
using namespace std;
int main()
{
int a,b,c;
for(a=0;a<1000;a++)
for(b=0;b<1000;b++)
for(c=0;c<1000;c++)
if(a<b&&b<c&&a*a+b*b==c*c&&a+b+c==1000)
cout<<a<<" "<<b<<" "<<c<<endl;
cout<<endl;
return 0;
}
1.首先等腰直角三角形的直角边最短。假设a+b=c,a=250.a+b>c.所以a<250.
2.250<b<500.
3.c必须大于500.