您的位置:首页 > 其它

算法练习——第一天

2017-12-05 22:35 169 查看
/* 求1/1!-1/3!+1/5!-1/7!+.....(-1)^(n+1)/(2n-1)! */

/* 下面的算法时间复杂度为o(n^2) */

/*public class Leijia_Leicheng {

public static void main(String[] args){

Scanner input=new Scanner(System.in);

System.out.println("请输入您要累加累乘到:");

int n=input.nextInt();

int sign=-1;

double sum=0;

double a=1;

for(int i=1;i<=n;i++){

a=1;

sign=sign*-1;

for(int j=1;j<=(2*i-1);j++){

a=a*j;

}

sum=sum+sign/a;

System.out.println(sign+"/"+a);

}

System.out.println("结果是:"+sum);

}

}*/

/* 求1/1!-1/3!+1/5!-1/7!+.....(-1)^(n+1)/(2n-1)! */

/*下面算法的时间复杂度为O(n) */

public class Leijia_Leicheng {

public static void main(String[] args){

Scanner input=new Scanner(System.in);

System.out.println("请输入您要累加累乘到:");

int n=input.nextInt();

int sign=1;

float sum=1;

float t=1;

for(int i=2;i<=n;i++){

sign=-sign;

t=t*(2*i-2)*(2*i-1);

sum=sum+sign/t;

}

System.out.println("Sum="+sum);

}

}

一个数如果恰好等于它的因子之和(包括1,但不包括这个数本身),这个数就称为“完数”。

/* 本题:1)顶层算法--首先判断其是不是完数。如果是,则按一定的格式输出

* 2)如何判断其是不是完数。先找这个数的因子,如果累加等于这个数,则是完数。 */

public class wanshu {

public static void main(String[] args){

/* 求多少数以内的完数 */

Scanner input=new Scanner(System.in);

System.out.println("请输入您要输出多少数以内的完数:");

int n=input.nextInt();

for(int i=1;i<=n;i++)

{

int t=0;

for(int j=1;j<i;j++){

if(i%j==0)

t=t+j;

}

if(t==i){

System.out.println(i);

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 class