刚刚收到消息 今天可以先把题总结了
吼吼吼
等明天函数都讲完了在总结函数的笔记
什么是素数 就是除了1和其本身之外 没有其他的数字可以整除的
num
2 ~ m ~ num-1 找到一个数字 如果这个数字m num%m==0 num不是素数
如果一个都没有找到的话 这个数字是素数
class Demo03_17{
public static void main(String[] args){
int count=0; //当前素数的个数
boolean flag=true;
for(int num=2;num<=1000;num++){
for(int m=2;m<=num-1;m++){
if(num%m==0){
flag=false;
break;
}
}
if(flag){
count++;
System.out.print(num+" ");
if(count%8==0){ //8 16 24 32
System.out.println();
}
}
flag=true;
}
}
}
有一说一这个题是真的恶心
算了好几遍都是输出的100
真的是,最后按照自己的想法又走了一遍,还是找不到错误,自己的思路是对了
import java.util.Scanner;
class Demo03_18{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入一个数字:");
int imax=scanner.nextInt();
double sum=0;
double flag=1;
for(int i=1;i<=imax;i++){
//sum+=Math.pow(-1.0,i+1);/(2*i-1);
sum+=flag/(2*i-1);
flag=-flag;
}
double pi=sum*4;
System.out.println(pi);
// 累乘 Math.pow(-1.0,i+1) for -1*-1*-1....
}
}
import java.util.Scanner;
class Demo03_19{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入一个数字:");
int imax=scanner.nextInt();
double e=1;
double item=1.0;
for(int i=1;i<=imax;i++){
item=item*i; //n!=(n-1)*n;
e+=1/item;
}
System.out.println(e);
}
}
class Demo03_20{
public static void main(String[] args){
int count=0;
for(int i=101;i<=2100;i++){
if(i%4==0&&i%100!=0 || i%400==0){
count++;
System.out.print(i+" ");
if(count%10==0){
System.out.println();
}
}
}
System.out.println("\n闰年一共"+count+"个");
}
}
class Demo03_21{
public static void main(String[] args){
//6 : 1 2 3 4 5 6
//28: 1 2 4 7 14
//n : 1 ~ n/2
int sum=0;
for(int n=2;n<=10000;n++){
for(int i=1;i<=n/2;i++){
if(n%i==0){
sum+=i;
}
}
if(n==sum){
System.out.println("完全数"+n);
}
sum=0;
}
}
}
import java.util.*;
class Demo03_22{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
Random random=new Random();
int usrWin=0;
int comWin=0;
while(true){
System.out.print("请输入剪刀0 石头1布2:");
int usr=scanner.nextInt();
int com=random.nextInt(3);
String usrStr = "";
String comStr = "";
switch(usr){
case 0:
usrStr = "scissor";
break;
case 1:
usrStr = "rock";
break;
case 2:
usrStr = "paper";
break;
}
switch(com){
case 0:
comStr = "scissor";
break;
case 1:
comStr = "rock";
break;
case 2:
comStr = "paper";
break;
}
if(usr==com){
System.out.printf("The computer is %s.you are %s too.It is a draw\n",comStr,usrStr);
}else if(usr==0&&com==2 || usr==1&&com==0 || usr==2&&com==1){
System.out.printf("The computer is %s.you are %s.You won\n",comStr,usrStr);
usrWin++;
}else{
System.out.printf("The computer is %s.you are %s.You lost\n",comStr,usrStr);
comWin++;
}
if(usrWin==2||comWin==2){
break;
}
}
if(usrWin==2){
System.out.println("最终玩家赢!");
}else{
System.out.println("最终电脑赢!");
}
}
}
所谓二进制就是把这个数一直除二最后把余数从后往前一排就好了
import java.util.Scanner;
class Demo03_23{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入一个数字:");
int num=scanner.nextInt();
String binStr="";
while(true){
binStr=num%2+binStr;//"1100"
num/=2;
if(num==0){
break;
}
}
System.out.println(binStr);
}
}
import java.util.Scanner;
class Demo03_24{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
int num=0;
int max=0;
int count=0;
System.out.print("请输入数字:");
while(true){
num=scanner.nextInt();
if(num==0){
break;
}else if(num>max){
max=num;
count=1;
}else if(num==max){
count++;
}
}
System.out.println("max="+max+",count="+count);
}
}