Java基础算法试题一

- 任务一:合并数字检测关键算法

** 题目:请编写函数(或方法)fun,其功能是:将两个两位数的正整数 a、b 合并形成 一个整数放在 c 中。合并的方式是:将 a 数的十位和个位数依次放在 c 数个位和 十位上,b 数的十位和个位数依次放在 c 数的百位和千位上。 例如,当 a=16、b=35 时,则 c=5361。 注意:其中,a、b 为函数(或方法)fun 的输入参数,c 为函数(或方法)fun 的返回值。**

public class Test(){
	public static void main(String []arge){
	Scanner scanner=new Scanner(System.in);
	System.out.println("输入第一个正整数");
    int a=scanner.nextInt();
    System.out.println("输入第二个正整数");
    int b=scanner.nextInt();
    int c=fun(a,b);s
    System.out.println(c);
}

  public static int fun(int a,int b){
        int c1=a/10;
        int c2=a%10;
        int c3=b/10;
        int c4=b%10;
        return (c1+c2*10+c3*100+c4*1000);
    }
}

- 任务二:猴子吃桃试题检测关键算法

** 题目:孙悟空在大闹蟠桃园的时候,第一天吃掉了所有桃子总数一半多一个,第二 天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到 第 n 天准备吃的时候只剩下一个桃子。这下可把神仙们心疼坏了,请帮忙计算一 下,第一天开始吃的时候桃园一共有多少个桃子。
注意: ①使用循环结构语句实现。 ②整数 N 由键盘输入,且 2 ≤ N ≤10。**

  /**
  	 * 解题思路:
     * 从第一天到第十天的桃子的减少公式是(n/2)-1=n;
     * 从第十天到第一天桃子增多的公式是2*(n+1)=n;因为最后一天的值已经给了,
     * 所以此时用倒退的方式;
     * @return
     */
    public static int tow(int num){
      num=1;
      for (int day=10;day>=1;day--){
          if (day==10){
              System.out.println("第"+day+"天的桃子为"+num+"个");
          }
          if (day<=9){
              num=2*(num+1);
              System.out.println("第"+day+"天的桃子为"+num+"个");
          }
      }
      return num;
    }

- 任务三:回文数检测关键算法

** 题目:输入一个 5 位正整数,输出它是不是回文数。回文数是这样一种数,它的逆 序数和它本身相等。例如,12321 的逆序数是 12321,和它本身相等,所以它是回文数。又例如 25128 的逆序数是 82152,所以它不是回文数。(注意:使用分支或循环结构语句实现。)**

/**
     * 通过键盘录入来判断回文数
     */
    public static void three(){
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入一个5位的整数,判断是不是回文数");
        int a=scanner.nextInt();
        int awan=a/10000;
        int aqian=(a/1000)%10;
        int abai=(a/100)%10;
        int ashi=(a/10)%10;
        int age=a%10;
        if (age*10000+ashi*1000+abai*100+aqian*10+awan==a){
            System.out.println("是回文数");
        }else {
            System.out.println("不是");
        }

    }
 /**
     * 循环遍历输出10000~~100000内的回文数
     */
    public static void four() {
        int count = 0;
        for (int i = 10000; i < 100000; i++) {
            int awan = i / 10000;
            int aqian = (i / 1000) % 10;
            int abai = (i / 100) % 10;
            int ashi = (i / 10) % 10;
            int age = i % 10;
            if (age * 10000 + ashi * 1000 + abai * 100 + aqian * 10 + awan == i) {
                count++;
                System.out.println("是回文数" + i);
            }
        }
        System.out.println("一个有" + count + "个回文数");
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值