1求水仙花数
求100到999三位数所有水仙花数并且输出(水仙花数指的就是一个三位数,其各位数字的立方和等于该数本身,例:153=1*1*1+5*5*5+3*3*3)
public class demo { public static void main(String[] args) { int i = 100; for(i=100;i<=999;i++){//产生三位数100到999 int a =i%10;//求出个位上的数字 int b=i/10%10;//求出十位上的数字 int c=i/100;//求出百位上的数字 if(i==a*a*a+b*b*b+c*c*c){//利用水仙花数定义进行判断 System.out.println(i); } } } }
2二进制为1的个数
输入一个整数,求其二进制数1的个数
public static void main(String[] args) { Scanner sc=new Scanner(System.in); int a = sc.nextInt();//输入一个整数 int b = 0; int count = 0;//对于需要计算个数的一定需要一个计数整形 for (b=0;b<=32;b++){ //因为是一个整形,所以为四个字节,32个位 int c = a &(1<<b);//通过按位与进行计算判断 if(c!=0){ count++; } } System.out.println(count); } }
3求两个数的最大公约数
输入两个整数求其最大公约数
import java.util.Scanner; public class testd { public static void main(String[] args) { Scanner dc = new Scanner(System.in); int a = dc.nextInt(); int b = dc.nextInt();//产生了两个整数 int c = a%b;//对a与b进行取模运算 while(c!=0) {//如果模不为零说明a与b之间不是直接的倍数,需要利用辗转相除的方法进行求最大公约数 a=b; b=c; c=a%b;//实现辗转相除的方法 } System.out.println("最大公约数为"+b);//打印出最大公约数 } }
4这是一个简单的猜数字游戏
系统随机产生一个数字,然后用户输入来猜数字
import java.util.Random; import java.util.Scanner; //这是一个简单的猜数字游戏 public class demo { public static void main(String[] args) { Random random = new Random();//系统随机产生一个数 Scanner SC = new Scanner(System.in); int toguess = random.nextInt(100); while(true){ System.out.println("请输入一个数字(1~100):");//给用户一个提示 int num = SC.nextInt(); if(num>toguess){ System.out.println("大了"); }else if(num<toguess){ System.out.println("小了"); }else{ System.out.println("猜对了"); break; } } SC.close(); } }
5判断一个数是否为素数
方法一:
public class demo { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int a = sc.nextInt();//输入一个数 int j = 2; for(j=2;j<a;j++){//根据素数的定义。利用2到a-1去除 if(a%j==0) { System.out.println("不是素数"); break; } //判断是否为素数 }if(j>=a){ System.out.println("素数"); } } }
方法二
mport java.util.Scanner; public class demo { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int a = sc.nextInt(); int i =2; for(i=2;i<=Math.sqrt(a);i++){ if(a%i==0){ System.out.println(a+"不是素数"); break; } } if(i>Math.sqrt(a)){//素数的判定条件 System.out.println(a+"是素数"); } } }/* m 不必被 2 ~ m-1 之间的每一个整数去除,只需被 2 ~ 之间的每一个整数去除就可以了。如果 m 不能被 2 ~ 间任一整数整除,m 必定是素数。例如判别 17 是是否为素数,只需使 17 被 2~4 之间的每一个整数去除,由于都不能整除,可以判定 17 是素数。 原因:因为如果 m 能被 2 ~ m-1 之间任一整数整除,其二个因子必定有一个小于或等于 ,另一个大于或等于 。例如 16 能被 2、4、8 整除,16=2*8,2 小于 4,8 大于 4,16=4*4,4=√16,因此只需判定在 2~4 之间有无因子即可。 */
6输出1到100的素数
public class demo { public static void main(String[] args) { int a= 1; for(a=1;a<=100;a++){ int j = 2; for(j=2;j<a;j++){//根据素数的定义。利用2到a-1去除 if(a%j==0) {//只要a%j为零,说明他不是一个素数 break; } } //如果a>=j说明这就是一个素数 if(a>=j){ System.out.println(a+"素数"); } } } }
7打印九九乘法口诀表
public class demo { public static void main(String[] args) { int i = 1; for(i=1;i<=9;i++){//打印九九乘法口诀表的行 for(int j = 1;j<=i;j++){//打印九九乘法口诀表的列 System.out.print(i+"*"+j+"="+i*j);//打印九九乘法口诀表 System.out.print("\t");//水平制表符,使得式子之间分隔 } System.out.println();//换行 } } }
8简单的登录系统
模拟三次输入密码场景,最多只能输入三次,密码正确提示登录成功,错误给予提示。
import java.util.Scanner; public class demo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int i =2 ;//作为循环变量,以及提示用户还有几次机会 for(i=2;i>=0;i--){ String password = sc.nextLine();//从键盘读入一个字符串 if(password.equals("123456")){//正确直接跳出循环 System.out.println("密码正确,登录成功"); break; }else{ System.out.print("密码错了,"); System.out.println("你还有"+i+"次机会"); } } } }
9打印出分数的求和问题
求1/1-1/2+1/3~~~+1/99-1/100
public class demo { public static void main(String[] args) { int i = 0; double sum = 0;//定义一个变量用于求和 int n = 0; for(i=1;i<=100;i++){ if(i%2==0){ n = -1; }else{ n=1; } //分支结构用于产生正负一 sum+=n*1.0/i; } System.out.println(sum); } }
10求出1000年到2000年之间的闰年
public class demo { public static void main(String[] args) { int year = 1000; for (year=1000;year<=2000;year++){ //闰年的实现条件 if(year%400==0||(year%4==0&&year%100!=0)){ System.out.println(year+"闰年"); } } } }
11求最小公倍数
import java.util.Scanner; public class text1{ //求出最小公倍数 public static void main(String[] args) { Scanner sc =new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int d = a*b; while(a%b!=0){ int c=a%b; a=b; b=c; } int ret =d/b;//在求最大公约数的基础上进行。利用a*b然后再除以最大公约数就可以得到最大公倍数 System.out.println("最小公倍数为:"+ret); } }
12 获取一个数的二进制序列中所有的奇数位与偶数位,分别输出二进制序列
import java.util.Scanner; public class demo { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int a = sc.nextInt(); //输出二进制序列的偶数与奇数二进制序列 System.out.print("偶数位"); //因为为整型所以占了32个位,偶数位从1,3,5到31(计算机从0到31位,所以第一位应该是偶数位) for(int i = 31;i>=1;i-=2){ System.out.print(a>>i&1); } //同理求得奇数位 System.out.print("奇数位:"); for(int i = 30;i>=0;i-=2){ System.out.print(a>>i&1); } } }