1·回文数的实现
核心在于倒序后的数字与原来一样
public class example {
public static void main(String[] args) {
//核心思路:倒序后的数字与原来一样
//定义数字
int x=1221;
int temp=x;
int num=0;
//设置循环
while(x !=0){
int ge=x%10;
x=x/10;
num=num*10+ge;
}
System.out.println(num==temp);
}
}
通过循环实现对不同位次的数字进行倒序。
2· 不使用除法,乘法和求余符号求商和余
采用循环,多次用 被除数减去除数 求出所需答案
public class exmaple2 {
public static void main(String[] args) {
//定义变量
int x1=156;
int x2=7;
int temp=0;
int a;
//被除数 / 除数 =商 ... 余数
if(x1<x2){
System.out.println("商为0");
}
while(x1>=x2){
x1=x1-x2;
temp++;
}
System.out.println("商为:"+temp);
System.out.println("余数为"+x1);
}
}
3·随机数版逢七过
主要复习java随机数的使用方法
mport java.util.Random;
public class 逢7过 {
//获得键盘输入数据方法
//1` 导包 import java.util.Scanner;
//2` Scanner sc=new Scanner(System.in);
//3` int i=sc.nextInt();
// 获得随机数方法
// 1` 导包 import java.util.Random;
// 2` 创建对象 Random r=new Random();
// 3` 生成随机数 int number=r.nextInt(随机数范围);
public static void main(String[] args) {
Random r=new Random();
for(int i=0;i<100;i++){
int number=r.nextInt(100)+1;//在0~9
if(number % 7 !=0 && number /10 !=7 && number % 10 !=7){
System.out.println(number);
}
}
}
4·交换数组数据
复习数组的一些用法
(1)数组逆序
int arr[]={1,2,3,4,5}; for(int i=0,j=arr.length-1;i<j;i++,j--){ int temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } for(int i=0;i<arr.length;i++){ System.out.print(arr[i]);
(2)首尾 交换
int arr[]={1,2,3,4,5};
int temp=0;
temp=arr[arr.length-1];
arr[arr.length-1] =arr[0];
arr[0]=temp;
System.out.println(arr[0]+" "+arr[arr.length-1]);
5`求100~200范围内质数的方法
利用循环,以此对被求数进行求余操作即可。
for(int i=101;i<=200;i++){
if(method(i)){
System.out.println(i);
}
}
}
private static boolean method(int i) {
for(int j=2;j<i;j++){
if(i%j==0){
return true;
}
}
return false;
}
6·开发验证码问题
核心在于 大小写字母的 的随机抽取
public class 开发验证码和数组复制 {
//如果要在一顿没有什么规律的数据中任意抽取数据,可以将这些数据放入到数组中,利用索引进行抽取
public static void main(String[] args) {
char[] chs=new char[52];
for (int i = 0; i < chs.length; i++) {
if(i<=25){
//添加小写字母 a--97
chs[i]=(char)(97+i);
}else
{//添加大写字母 A--65
chs[i]=(char)(65+i-26);
}
}
System.out.println("验证码为:");
//随机抽取4次字母
Random r=new Random();
for(int a=0;a<4;a++){
int ran=r.nextInt(chs.length);
//获取相对应的元素
System.out.print(chs[ran]);
}
int c=r.nextInt(9);
System.out.print(c);
}
7·彩票双色球问题
可使用switch语句判断红球数量
public class 彩票双色球 {
public static void main(String[] args) {
//随机生成中奖号码
int arr1[]=new int[6];
int arr2;
Random r=new Random();
//红球
for (int i = 0; i < arr1.length; i++) {
arr1[i]=r.nextInt(33)+1;
}
//篮球
arr2=r.nextInt(16)+1;
//中奖号码
int arr3[]=new int[7];
for (int i = 0; i < arr3.length-1; i++) {
arr3[i]=arr1[i];
}
arr3[arr3.length-1]=arr2;
System.out.println("中奖号码为");
for (int i = 0; i < arr3.length; i++) {
System.out.print(arr3[i]+" ");
}
//用户输入中奖号码
System.out.println();
Scanner sc=new Scanner(System.in);
int arr4[]=new int[7];
System.out.println("用户请输入中奖号码:");
for(int i=0;i<7;i++){
arr4[i]=sc.nextInt();
}
//判断中奖情况
equal(arr4,arr3);
}
private static void equal(int[] arr4,int [] arr3) {
int temp = 0;
//当有蓝球时
if (arr4[arr4.length - 1] == arr3[arr3.length - 1]) {
for (int i = 0; i < arr4.length-1; i++) {
//判断红球数
if (arr4[i] == arr3[i]) {
temp++;
}
}
switch (temp) {
case 6:
System.out.println("中了最高1000万奖金");
break;
case 5:
System.out.println("中了3000元奖金");
break;
case 3:
System.out.println("中了10元");
break;
case 1:
System.out.println("中了5元");
break;
case 4:
System.out.println("中了200元");
break;
default:
System.out.println("没有中奖");
}
}
//当没有蓝球时
else {
int all = 0;
for (int i = 0; i < arr4.length; i++) {
if (arr4[i] == arr3[i]) {
all++;
}
}
switch (all) {
case 6:
System.out.println("中了最高500万奖金");
break;
default:
System.out.println("没有中奖");
}
}
}
8·数字加密问题
核心在于将 数字拆开在合并
public class 数字加密 {
public static void main(String[] args) {
System.out.println("请输入密码");
Scanner sc=new Scanner(System.in);
int i=sc.nextInt();
int a=method1(i);
int b=method2(a);
System.out.println(b);
}
private static int method1(int i) {
int a=i/1000;
int b=i/100%10;
int c=i/10%10;
int d=(i-1000*a-100*b-10*c);
a+=5;
a=a%10;
b+=5;
b=b%10;
c+=5;
c=c%10;
d+=5;
d=d%10;
int sum=a*1000+b*100+c*10+d;
return sum;
}
private static int method2(int a) {
int x=a/1000;
int y=a/100%10;
int z=a/10%10;
int d=(a-1000*x-100*y-10*z);
int arr1[]={x,y,z,d};
int arr2[]=new int[4];
for (int i = 0,j=arr1.length-1; i < arr1.length; i++,j--) {
arr2[j]=arr1[i];
}
arr2[0]=arr2[0]*1000;
arr2[1]=arr2[1]*100;
arr2[2]=arr2[2]*10;
int result=arr2[0]+arr2[1]+arr2[2]+arr2[3];
return result;
}
9·评委打分
去掉最高分和最低分,求出平均值即可
public class 评委打分 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int arr[] = new int[5];
System.out.println("6名裁判打分分别为:");
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt();
System.out.print(arr[i]+" ");
}
System.out.println();
int max = getMax(arr);
int min = getMin(arr);
System.out.println("处理后的分数为:");
int score=getScore(arr);
int avg=(int)(score-max-min)/(arr.length-2);
System.out.println("最终评分为"+avg);
}
private static int getScore(int[] arr) {
int score=0;
for (int i = 0; i < arr.length; i++) {
score+=arr[i];
}
return score;
}
private static int getMax(int[] arr) {
int max = arr[0];
for (int i = 0; i < arr.length; i++) {
if (max < arr[i]) {
int temp = arr[i];
max = arr[i];
arr[i] = temp;
}
}
return max;
}
private static int getMin(int[] arr) {
int min = arr[0];
for (int i = 0; i < arr.length; i++) {
if (min > arr[i]) {
int temp = arr[i];
min = arr[i];
arr[i] = temp;
}
}
return min;
}
10·随机数版逢七过
判断逢7过的条件即可
public static void main(String[] args) {
Random r=new Random();
for(int i=0;i<100;i++){
int number=r.nextInt(100)+1;//在0~9
if(number % 7 !=0 && number /10 !=7 && number % 10 !=7){
System.out.println(number);
}
}