面向对象程序设计java PTA 作业一

山东科技大学PTA 作业一

7-1 一个整数各个位上的最大数字

编写一个类的方法,其输入参数为一个整数,输出为该整数各个位上的最大数字。

输入格式:

输入一个整数N

输出格式:

输出该整数N各个位上的最大数字

输入样例:

在这里给出一组输入。例如:

59274

输出样例:

在这里给出相应的输出。例如:

9

代码如下:

import java.util.*;
 
public class Main {
    public static int s(int num){
        int max = 0;
        while(num != 0){
            if(num % 10 > max)
                max = num % 10;
                num /= 10;
        }
        return max;
    }
    public static void main(String[] args) {
       Scanner x = new Scanner(System.in);
       int i = x.nextInt();
       System.out.print(s(i));
    }

}

7-2 十进制转二进制

编写代码,要求:输入参数是一个正整数,输出该整数所对应的二进制数对应的字符串。

输入格式:

正整数

输出格式:

输入的正整数对应的二进制字符串“1001”

输入样例:

在这里给出一组输入。例如:

9

输出样例:

在这里给出相应的输出。例如:

1001

代码如下:

import java.util.*;
 
public class Main 
{
    public static void main(String[] args) 
    {
        Scanner scan=new Scanner(System.in);
        int i=scan.nextInt();
        String  resule="";
        while(i>1)
        {
            resule=i%2+resule;
            i=i/2;
        }
        resule=i+resule;
        System.out.println(resule);
    }
}

7-3 判断回文

编码实现:输入一个字符串,判断该字符串是否是回文(回文是指将该字符串含有的字符逆序排列后得到的字符串和原字符串相同的字符串)如果是回文,则输出“Yes”;否则输出“No”。

输入格式:

判定是否是回文的字符串

输出格式:

“Yes”或者“No”

输入样例:

在这里给出一组输入。例如:

ToooT

输出样例:

在这里给出相应的输出。例如:

Yes

代码如下:


import java.util.*;

public class Main{

    public static void main(String argc[]){
        Scanner duanmingyu = new Scanner(System.in);
        String duanmingyus = duanmingyu.nextLine();
        String revers = "";

        for(int i = duanmingyus.length()-1; i >= 0 ; i--){
            revers += duanmingyus.charAt(i);
        }

        if(revers.equals(duanmingyus)){
            System.out.println("Yes");
        }
        else {
            System.out.println("No");
        }
    }
}

7-4 学投资

小白学习了一些复利投资知识,想比较一下复利能多赚多少钱(所谓复利投资,是指每年投资的本金是上一年的本金加收益。而非复利投资是指每年投资金额不包含上一年的收益,即固定投资额)。假设他每年固定投资M元(整数),每年的年收益达到P(0<P<1,double),那么经过N(整数)年后,复利投资比非复利投资多收入多赚多少钱呢?计算过程使用双精度浮点数,最后结果四舍五入输出整数(Math的round函数)。

输入格式:

M P N

输出格式:

复利收入(含本金),非复利收入(含本金),复利比非复利收入多的部分(全部取整,四舍五入)

输入样例:

在这里给出一组输入。例如:

10000 0.2 3

输出样例:

在这里给出相应的输出。例如:

17280 16000 1280

代码如下:


import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        int m = in.nextInt();
        double p = in.nextDouble();
        int n = in.nextInt();
        double a = 0.0, b = 0.0, c = 0.0;

        b = m * p * n +  m;
        int i;
        a = (double)m;

        for(i = 0; i < n; i++){
            a *= 1 + p;
        }
        c = a - b;
        System.out.println(Math.round(a) + " " + Math.round(b) + " " + Math.round(c));
    }

}

7-5 打印所有的水仙花数

编写程序打印出所有的水仙花数。所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。例如:153是一个水仙花数,因为153=13+53+3^3。 输出的数之间用“,”(英文半角的逗号)分割。

输入格式:

输出格式:

153,370,371,407

输入样例:

在这里给出一组输入。例如:

 

输出样例:

在这里给出相应的输出。例如:

153,370,371,407

代码如下:


import java.util.Scanner;
public class Main {  
  
    public static void main(String[] args) {  

        int num = 100,flag=0;  
        int g,s,b;  
        for(num= 100;num<1000;num++){  
            g = num / 1 % 10;  
            s = num / 10 % 10;  
            b = num / 100 % 10;  
            if(flag==0){
                if(num == g*g*g+s*s*s+b*b*b ){  
                    System.out.print(num);
                    flag++;
                }
            }  
            else {
                if(num == g*g*g+s*s*s+b*b*b){  
                    System.out.print(","+num);
                }
            }
        }  
          
    }  
  
}  

7-6 逆序输出整数

编写程序将整数逆序输出。如输入为9876输出为6789
Main函数中读入n个整数,输出n个整数的逆序数

输入格式:

整数个数n
n个整数

输出格式:

n个整数的逆序数

输入样例:

在这里给出一组输入。例如:

3
1234
2323
1112

输出样例:

在这里给出相应的输出。例如:

4321
3232
2111

代码如下:


import java.util.*;
 
public class Main{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        int n;
        n = input.nextInt();
        while(n != 0){
            int num = input.nextInt();
            while(num != 0){
                System.out.print(num%10);
                num/=10;
            }
            System.out.println();
            n--;
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值