Java小题试炼
作者:互联网
Java小题试炼
1.求1!+···+10!
public class Review {
public static void main(String args[]){
int sum=0;//求和
int factorrial;//阶乘
for (int j = 1; j<= 10; j++) {
factorrial=1;
for(int k=1;k<=j;k++){
factorrial = factorrial * k;
}
sum = sum + factorrial;
}
System.out.println(sum);
}
}
2.求一百以内的所有素数
import static java.lang.Math.sqrt;
public class Review {
public static void main(String args[]){
boolean flag=true;
for(int i=2;i<=100;i++){
for(int j=2;j<=sqrt(i);j++){//非素数有三个因子以上
flag=true;
if(i%j==0){
flag=false;
break;
}
}
if(flag==true)System.out.print(i+" ");
}
}
}
3.求1+1/2!+1/3!+1/4!+···的前20项的和。
for循环实现
public class Review {
public static void main(String args[]){
double sum=0;//求和
double factorrial;//阶乘
for (int j = 1; j<= 20; j++) {
factorrial=1;
for(int k=1;k<=j;k++){
factorrial = factorrial * k;
}
sum = sum + 1/factorrial;
}
System.out.println(sum);
}
}
do-while实现
public class Review {
public static void main(String args[]){
double sum=0;//求和
double factorrial;//阶乘
int j=1;
do{
factorrial=1;
int k=1;
do{
factorrial = factorrial * k;
k++;
}while(k<=j);
sum = sum + 1/factorrial;
j++;
}while(j<=3);
System.out.println(sum);
}
}
4.求1000以内的所有完数(本身等于因子之和)
public class Review {
public static void main(String args[]){
for(int i=1;i<=1000;i++){
int sum=0;//因子之和,因子是小于本身的
for(int j=1;j<=i/2+1;j++) {
if (i % j == 0) sum = sum + j;
}
if(sum==i)System.out.println(i);
}
}
}
5.求8+88+888+···前10项的和。
public class Review {
public static void main(String args[]){
double sum=0;
double temp=0.1;
for(int i=1;i<=2;i++){
double flag=0;
for(int j=1;j<=i;j++){
temp=0.1;
for(int k=0;k<j;k++){
temp=temp*10;//个位,十位,百位
}
flag=flag+8*temp;//所有位数相加
}
sum=sum+flag;
}
System.out.println(sum);
}
}
6.求1+2+3+···+n<8888的最大正整数n。
public class Review {
public static void main(String args[]){
int sum=0;
for(int i=1;true;i++) {
sum=sum+i;
if((sum+(i+1))>=15) {
System.out.println(i);
break;
}
}
}
}
标签:试炼,Java,int,sum,flag,static,小题,factorrial,public 来源: https://blog.csdn.net/qq_53889144/article/details/122449666