6-3 数字校验
分数 10
全屏浏览
切换布局
作者 殷伟凤
单位 浙江传媒学院
本题要求实现一个函数,校验一个13位正整数号码是否正确。13位号码的最后一位是校验码。通过对前12位数字的加减乘除运算得到一个一位数字,如果和第13位数字相同,表示正确的号码。
1、从最右边第12位开始间隔一位个位数相加,然后乘7。
2、剩下的其余数字相加,然后乘2 。
3、再把两者加起来,除以10取余数
4、和第13位相校验,匹配就正确,不匹配则错误。
裁判测试程序样例:
解释import java.util.Scanner;
public class Main {
/* 请在这里填写答案 */
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
long code = in.nextLong();
boolean checksumResult = checksum(code);
if (checksumResult)
System.out.println("The checksum of "+code+" is "+ "correct");
else
System.out.println("The checksum of "+code+" is "+ "incorrect");
}
}
输入样例1:
在这里给出一组输入。例如:
1234567890126
输出样例1:
在这里给出相应的输出。例如:
The checksum of 1234567890126 is correct
输入样例2:
在这里给出一组输入。例如:
2345677654329
输出样例2:
在这里给出相应的输出。例如:
The checksum of 2345677654329 is incorrect
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
import java.util.Scanner;
public class Main {
/* 请在这里填写答案 */
public static boolean checksum(long a){
int d=(int)(a%10);
int b=0;
int c=0;
int e=0;
for(int i=12;i>0;i--){
e=(int)(a%10);
a/=10;
if((i % 2) != 0)
{
c+=e;
}
else {
b+=e;
}
}
c*=2;b*=7;
int sum=(c+b)/10%10;
if(sum==d){
return true;
}
return false;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
long code = in.nextLong();
boolean checksumResult = checksum(code);
if (checksumResult)
System.out.println("The checksum of "+code+" is "+ "correct");
else
System.out.println("The checksum of "+code+" is "+ "incorrect");
}
}
7-1 设计一个银行流水账号类
分数 20
全屏浏览
切换布局
作者 曹记东
单位 陕西理工大学
设计一个BankAccount类,这个类包括:
(1)一个int型的balance,表示账户余额。
(2)一个无参构造方法,将账户余额初始化为0。
(3)一个带一个参数的构造方法,将账户余额初始化为输入的参数。
(4)一个getBlance()方法,返回账户余额。
(5)一个withdraw()方法:带一个amount参数,表示从账户余额中提取amount指定的款额,并返回账户余额;
若账户余额不足,则输出相应的提示信息。
(6)一个deposit()方法:带一个amount参数,表示将amount指定的款额存储到该银行账户上。
设计一个Main类进行测试,分别输入账户余额、提取额度以及存款额度,并分别输出账户余额。
输入格式:
依次输入账户余额、提取额度、存款额度,所有数据大于等于0。
输出格式:
依次输出初始账户余额、提取amount额度后的账户余额、存入amount后的账户余额。
输入样例1:
700
500
30
输出样例1:
账户的初始余额是:700
取款后,账户的余额是:200
存款后,账户的余额是:230
输入样例2:
300
500
20
输出样例2:
账户余额不足
账户的初始余额是:300
输入样例3:
-100
50
20
输出样例3:
输入的数据不能为负数
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
import java.util.Scanner;
class BankAccout {
private int balance;
public BankAccout() {
}
public BankAccout(int balance) {
this.balance = balance;
}
public int getBalance() {
return balance;
}
public void setBalance(int balance) {
this.balance = balance;
}
public int withdraw(int amount) {
if ((balance - amount) <= 0) {
System.out.println("账户余额不足");
return 0;
}
balance = balance - amount;
return balance;
}
public int deposit(int amount) {
balance = balance + amount;
return balance;
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b=scanner.nextInt();
int c=scanner.nextInt();
if(a<0){
System.out.println("输入的数据不能为负数");
return;
}
BankAccout bankAccout = new BankAccout(a);
if(bankAccout.withdraw(b)==0){
System.out.println("账户的初始余额是:"+bankAccout.getBalance());
}
else {
System.out.println("账户的初始余额是:"+a);
System.out.println("取款后,账户的余额是:"+bankAccout.getBalance());
System.out.println("存款后,账户的余额是:"+bankAccout.deposit(c));
}