- 定义一个整型变量并赋任意五位正整数作为初始值,判断它是不是五位回文数
(五位回文数:个位与万位相同,十位与千位相同,例如:12321)
public class Demo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个五位整数:");
int i = scanner.nextInt();
int[] a=new int[5];
int j=0;
while (j<=4){
a[j]= (int) (i/(Math.pow(10,4-j)));
i%=Math.pow(10,4-j);
j++;
}
if(a[0]==a[4]&&a[1]==a[3]){
System.out.println("该五位数是回文数");
}else{
System.out.println("该五位数不是回文数");
}
}
}
- 定义一个整型变量并赋任意五位正整数作为初始值,输出各位数字之和
(例如:12345 各位之和是:1+2+3+4+5 。也就是 15)
public class Demo2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个五位整数:");
int i = scanner.nextInt();
int[] a=new int[5];
int j=0,sum=0;
while (j<=4){
a[j]= (int) (i/(Math.pow(10,4-j)));
i%=Math.pow(10,4-j);
j++;
}
for (int t : a) {
sum+=t;
}
System.out.println("各位之和是:"+sum);
}
}
- 定义整型变量 a、b,写出将 a、b 两个变量值进行互换的程序
(要求不能使用第三个变量)
public class Demo3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入整数a:");
int a = scanner.nextInt();
System.out.println("请输入整数b:");
int b = scanner.nextInt();
a=a+b;
b=a-b;
a=a-b;
System.out.println("a="+a+"\tb="+b);
}
}
4、打印九九乘法表 ,效果如图:
public class Demo {
public static void main(String[] args) {
System.out.println("乘法口诀表");
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
}
5、打印三位数中的所有水仙花数 所谓“水仙花数”即一个整数满足其值等于各个数位的立方和。 如: 153 是一个水仙花数,因为 153= 1³+5³+3³
public class Demo {
public static void main(String[] args) {
int j,temp;
int[] a=new int[3];
for(int i=100;i<1000;i++){
j=0;
temp=i;
while (j<=2){
a[j]= (int) (i/(Math.pow(10,2-j)));
i%=Math.pow(10,2-j);
j++;
}
i=temp;
if(Math.pow(a[0],3)+Math.pow(a[1],3)+Math.pow(a[2],3)==i){
System.out.println(temp);
}
}
}
}
6.对数组{1,3,9,5,6,7,15,4,8}进行排序,然后使用二分查找 6 并输出排序后的下标。
public class Demo {
public static void main(String[] args) {
int a[]={1,3,9,5,6,7,15,4,8};
//冒泡排序
for(int i=1;i<a.length;i++){
for(int j=0;j<a.length-i;j++){
if(a[j]>a[j+1]){
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
System.out.println("冒泡排序后的结果:");
for (int i : a) {
System.out.print(i+" ");
}
//二分查找
int target=6,min=0,max=a.length-1,middle;
while(min<=max){
middle=(min+max)/2;
if(a[middle]<target){
min=middle+1;
}else if(a[middle]>target){
max=middle-1;
}else{
System.out.println("下标为:"+middle);
return;
}
}
}
}
7.给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保
持非零元素的相对顺序。
示例:
输入: [0,1,0,3,12] 输出: [1,3,12,0,0]
public class Demo {
public static void main(String[] args) {
int nums[]={0,1,0,3,12};
for(int i=1;i<nums.length;i++){
for(int j=0;j<nums.length-i;j++){
if(nums[j]==0){
int temp=nums[j];
nums[j]=nums[j+1];
nums[j+1]=temp;
}
}
}
System.out.println("排序后的结果:");
for (int i : nums) {
System.out.print(i+" ");
}
}
}
8.今天同学们相约一起爬山游玩,为了更好的进行这场活动,大家准备推举一个人作为出游的临时队长。为了体现合理公平,大家提出了一个比较有趣的规则。所有人围成一圈,顺序排号。从第一个人开始报数(从 1 到 3 报数),凡报到 3 的人退出圈子,剩下的人继续报数,最后留下的当选为队长。请你通过编写程序,求出一组人中的队长是原来第几位同学。
public class Demo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] a=new int[n];
int t=0,i=0,num=0;
while(num<a.length-1){
if(a[i]==0){
//还没淘汰
t++;
if(t%3==0){
//退出
a[i]=1;
num++;
System.out.println("淘汰"+(i+1));
}
}
i++;
if(i==a.length)
i=0;
}
for(int j=0;j<a.length;j++){
if(a[j]==0){
System.out.println("原来的第"+(j+1)+"位同学为队长");
}
}
}
}