【java PTA实验】认真做实验的弱菜(6 / 7)

目录

一、java语言基础训练

7-1 计算钱币 

7-2 sdut-温度转换

7-3 输入半径计算圆的面积 

7-4 求一个三位正整数各位数字之和 

二、程序流程控制结构

6-2 数字校验

7-1 闰年判断

7-2 身体质量指数(BMI)测算

7-3 倒顺数字串

三、类与对象

6-1 设计一个矩形类Rectangle

6-2 Person类

6-3 定义游客类

6-4 设计Student类

四、继承与多态

6-1 长方形长方体类

7-1 sdut-oop-6 计算各种图形的周长(多态)

五、集合类

7-1 重复数据问题 

7-2 阅读程序,按照题目需求修改程序

六、数组与字符串

7-1 超市贴花

7-2 矩阵相加 

7-3 学号识别


一、java语言基础训练

7-1 计算钱币 

编写程序,读取用户输入的代表总金额的double值,打印表示该金额所需的最少纸币张数和硬币个数,打印从最大金额开始。纸币的种类有十元、五元、一元,硬币的种类有五角、一角、贰分、壹分。

输入格式:

47.63

输出格式:

4 张十元
1 张五元
2 张一元
1 个五角
1 个一角
1 个贰分
1 个壹分
import java.util.Scanner;

public class Main
{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        double n=sc.nextDouble();
        System.out.println((int)n/10+" 张十元");
        n%=10;
        System.out.println((int)n/5+" 张五元");
        n%=5;
        System.out.println((int)n+" 张一元");
        double t=n*100%100/10;
        System.out.println((int)t/5+" 个五角");
        t%=5;
        System.out.println((int)t+" 个一角");
        double p=n*100%100%10;
        System.out.println((int)p/2+" 个贰分");
        p%=2;
        System.out.println((int)p+" 个壹分");
    }
}

7-2 sdut-温度转换

输入一个华氏温度,输出摄氏温度,其转换公式为:C=5(F-32)/9。

输入格式:

输入数据只有一个实数,即华氏温度。

输出格式:

输出数据只有一个,即摄氏温度,保留2位小数。

import java.util.Scanner;

public class Main
{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        double n=sc.nextDouble();
        System.out.printf("%.2f",5*(n-32)/9);
    }
}

7-3 输入半径计算圆的面积 

从控制台输入半径,计算圆的半径。其中PI=3.14159

输入格式:

输入圆的半径

输出格式:

输出一行面积信息

输入样例:

10

输出样例:

The area for the circle of radius 10.0 is 314.159
import java.util.Scanner;

public class Main
{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        double r=sc.nextDouble();
        double s=r*r*3.14159;
        System.out.printf("The area for the circle of radius %.1f is %.3f\n",r,s);
    }
}

7-4 求一个三位正整数各位数字之和 

求一个三位正整数各位数字之和

输入格式:

输入一个三位的正整数

输出格式:

输出百十个位上各位数字的和

输入样例:

678

输出样例:

21
import java.util.Scanner;

public class Main
{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int sum=0;
        while(n>0)
        {
            sum+=n%10;
            n/=10;
        }
        System.out.print(sum);
    }
}

二、程序流程控制结构

6-2 数字校验

本题要求实现一个函数,校验一个13位正整数号码是否正确。13位号码的最后一位是校验码。通过对前12位数字的加减乘除运算得到一个一位数字,如果和第13位数字相同,表示正确的号码。

1、从最右边第12位开始间隔一位个位数相加,然后乘7。

2、剩下的其余数字相加,然后乘2 。

3、再把两者加起来,除以10取余数

4、和第13位相校验,匹配就正确,不匹配则错误。

输入样例1:

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

1234567890126

输出样例1:

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

The checksum of 1234567890126 is correct
public static boolean checksum(long code)
{
    int s1=0,s2=0,cnt=12;
    long ck=code%10l;
    code/=10;
    while(cnt>0)
    {
        if(cnt%2==0) s1+=code%10;
        else s2+=code%10;
        cnt--;
        code/=10;
    }
    s1*=7;
    s2*=2;
    int s=(s1+s2)%10;
    if(s==ck) return true;
    return false;
}

7-1 闰年判断

问题描述
给定一个年份,判断这一年是不是闰年。
当以下情况之一满足时,这一年是闰年:

  1. 年份是4的倍数而不是100的倍数;
  2. 年份是400的倍数。
    其他的年份都不是闰年。

输入格式:

输入包含一个整数y,表示当前的年份。数据规模与约定 1990 <= y <= 2050。

输出格式:

输出一行,如果给定的年份是闰年,则输出yes,否则输出no。
说明:当试题指定你输出一个字符串作为结果(比如本题的yes或者no,你需要严格按照试题中给定的大小写,写错大小写将不得分。

输入样例:

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

2013

输出样例:

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

no
import java.util.Scanner;

public class Main
{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        int y=sc.nextInt();
        boolean f=false;
        if((y%4==0&&y%100!=0)||y%400==0) f=true;
        if(f) System.out.print("yes");
        else System.out.print("no");
    }
}

7-2 身体质量指数(BMI)测算

输入格式:

两个数值:体重(以千克为单位),身高(以米为单位),数值间以空格分隔。例如:65.5 1.75。
注意:体重的世界纪录是727公斤,身高的世界纪录是2.72米。输入数据上限不得超过纪录,下限不得小于等于0;

输出格式:

输入数值超出范围 :输出“input out of range”。例如:-2 3或者125 5。
BMI小于18.5 :输出“thin”。
BMI大于等于18.5小于24 :输出“fit”。
BMI大于等于24小于28 :输出“overweight”。
BMII大于等于28 :输出“fat”。

import java.util.Scanner;

public class Main
{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        double w=sc.nextDouble(),h=sc.nextDouble();
        double bmi=w/(h*h);
        if(w<=0||w>727||h<=0||h>2.72) System.out.println("input out of range");
        else
        {
            if(bmi<18.5) System.out.print("thin");
            else if(bmi<24) System.out.print("fit");
            else if(bmi<28) System.out.print("overweight");
            else System.out.print("fat");
        }
    }
}

7-3 倒顺数字串

输入正整数n,输出它的倒顺数字串。如n=6时,输出

1 2 3 4 5 6 5 4 3 2 1

输入格式:

输入一个正整数n,n的范围是[1,50]。

输出格式:

n的倒顺数字串,每两个数字之间只用一个空格隔开。

import jav
<think>好的,用户想查找PTA实验7-3-6相关的题目、解答或代码实现。首先,我需要确定这个题目的具体内容。根据PTA的编号习惯,7-3-6可能属于某一章的编程题,比如基础编程题目集或数据结构部分的题目。但提供的引用中没有直接提到7-3-6,所以需要根据已有的信息推测可能的题目类型。 查看现有引用,引用[3]提到猴子选大王,属于约瑟夫环问题,引用[4]是折半查找,引用[5]是关于统计某类完全平方数的题目。这些题目都属于不同的章节,比如基础题或数据结构题。实验7-3-6可能属于循环结构或数组应用的题目,因为类似的题目如7-28(猴子选大王)涉及到数组和循环。 可能的思路是,实验7-3-6可能涉及循环结构、条件判断,或者数组操作。例如,可能是求素数、数字处理,或者类似约瑟夫环的问题。由于用户提供的引用中没有直接对应的答案,可能需要根据常见的PTA题目类型进行推断。 接下来,考虑用户可能需要代码示例或解题思路。例如,如果是数字处理类题目,可能需要分解数字的各数,进行统计或计算。比如,引用[5]中的统计某类完全平方数,涉及完全平方数的判断和数字重复的检查,这可能与7-3-6有类似的结构。 另外,用户可能需要如何解决该题目的步骤,比如分析题目要求,确定输入输出格式,然后分步骤实现。例如,先处理输入,再设计算法,最后测试边界条件。 最后,由于无法直接获取7-3-6的具体题目内容,建议用户提供更多题目细节,或者根据常见题型给出可能的解答框架,例如循环结构、数组使用等,并引导用户根据具体题目要求调整代码。</think>根据您的需求,PTA实验7-3-6可能属于“循环结构”或“数组应用”类题目。以下是基于相似题型和PTA题库特点的推测性解答框架: --- ### **推测题目类型** 根据PTA编号规则,实验7-3-6可能是以下类型的题目: 1. **数字分解与条件判断**(如统计特定数字特征) 2. **数列计算或循环结构应用**(如斐波那契数列、素数筛选) 3. **数组操作与逻辑模拟**(如约瑟夫环、矩阵变换) --- ### **示例解答框架(以数字特征统计为例)** 假设题目要求统计满足以下条件的整数: - **条件1**:四数且是完全平方数 - **条件2**:各数字中有至少两个相同 #### **代码实现** ```python import math def check_number(n): # 判断是否为完全平方数 root = int(math.sqrt(n)) if root * root != n: return False # 分解各数字并检查重复 digits = list(str(n)) return len(digits) != len(set(digits)) # 主程序 count = 0 for num in range(1000, 10000): if check_number(num): count += 1 print(f"符合条件的数共有{count}个") ``` --- ### **关键步骤解析** 1. **完全平方数判断**:通过平方根取整后平方与原数比较实现[^5]。 2. **数字重复判断**:将数字转为字符串后利用集合去重特性。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值