1-1/2+1/3-1/4+......+Math.pow(-1,n-1)*1/n,其中n是用户输入的正整数。
编写方法,输出n以内所有完数。一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3。
编写方法,输出n以内所有完数。一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3。
解决方案 »
- 关于static synchronized 和 synchronized 的问题
- JAVA中有关inputstream中的read方法读取中文乱码的问题
- 关于String的方法contains()
- 多态
- [求助]String.Split()问题,绝对新鲜!
- jfreechart 线性图的问题:
- 真得好急!!!,关于打印的问题?/
- 求认证的104和147模拟题!
- 请问在java里,如何知道数据集的记录数??
- 请问JAVA中的构造器是什么意思?
- 如何在eclipse里面运行JList[100分]
- java程序我已经打包成了可执行的exe文件了,再用InnoSetup_517_WestKing_HA工具制作成安装包,为何不能用呢?
楼主【zixiakoma】截止到2008-06-30 09:46:31的历史汇总数据(不包括此帖):
发帖数:22 发帖分:485
结贴数:21 结贴分:435
未结数:1 未结分:50
结贴率:95.45 % 结分率:89.69 %
值得尊敬
int sum = 0;
for(int j=1;j<i;j++) {
if(i%j == 0)
sum = sum + j;
}
if(sum == i) {
System.out.println(i);
}
}
首先确定用户输入的n是奇数还是偶数。
我们可以看到,这个数列中每2项的和是将这两项的分母相乘作为分母,分子为1。这样,数列就变成了:
1/(1*2)+1/(3*4)+1/(5*6)+...
这个数列的求和应该很容易了吧?两个变量1和2,求积,求倒数,累加,然后依次分别加2,再这样累加。
如果n是偶数,直接累加到n为止。
如果n是奇数,则累加到n-1,然后加上一个1/n就可以了。
for(int i=1;i <n;i++){
for(int j=1;j <i;j++){
if(i%j == 0){
sum = sum + j;
}
}
if(sum == i) {
System.out.println(i);
}
}
for(int i=1;i <n;i++){
int sum = 1;
for(int j=1;j <i/2;j++){
if(i%j == 0){
sum = sum + j;
}
}
if(sum == i) {
System.out.println(i);
}
}
你在地址栏的 .html 后面加上一些其他的东西,比如 ?seed=454545645 这种再敲回车就有了。
IE 缓存在作怪。垃圾的 IE。
后面加上 ?seed=454545645 浏览器看到的是一个完全不同的 URL,它就不会用缓存内容忽悠你了。
{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入正整数!");
int param = 0;
double result = 0;
try{
param = scanner.nextInt();
if(param <= 0)
throw new Exception();
}catch (Exception e) {
System.out.println("输入非法,程序退出!");
}
for(int n = 1;n <= param;++n)
{
result += Math.pow(-1,n-1)*1.0/n;
}
System.out.println(result);
}
}