6-1是否偶数
本题要求实现一个函数,判盘输入的整数是否是偶数,如果是偶数,返回true,否则返回false。
函数接口定义:
public static boolean isOdd(int data)
说明:其中 data
是用户传入的参数。 data
的值不超过int
的范围。函数须返回 true
或者 false
。
裁判测试程序样例:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int data=in.nextInt();
System.out.println(isOdd(data));
}
/* 请在这里给出isOdd(i)函数 */
}
输入样例:
8
输出样例:
true
实验代码:
public static boolean isOdd(int data)
{
if(data % 2==0)
{
return true;
}
else
{
return false;
}
}
6-2 数字校验
本题要求实现一个函数,校验一个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
实验代码:
public static boolean checksum(long code){
long a = 0;
long b = 0;
long c = code;
for(int i = 0; i < 12; i++){
if(i % 2 == 0){
c /= 10;
a += c%10;
}else{
c /= 10;
b += c%10;
}
}
long sum = (a*7+b*2)%10;
if(sum == code%10){
return true;
}else{
return false;
}
}
6-3 sdut-fun-1 最大公约数与最小公倍数
输入两个正整数,求它们的最大公约数与最小公倍数。
输入:两个正整数,两个整数之间用空格分开。数据保证在 int 范围内。
输出:第一行输出最大公约数;第二行输出最小公倍数。答案保证在 int 范围内。
函数接口定义:
public static int gcd ( int m, int n ) //求最大公约数
{
return 0;
}
public static int lcm ( int m, int n ) //求最小公倍数
{
return 0;
}
其中,参数m和n分别表示2个待求最大公约数的数值。
裁判测试程序样例:
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
int a = reader.nextInt();
int b = reader.nextInt();
System.out.println(gcd(a,b));
System.out.println(lcm(a,b));
reader.close();
}
/* 请在这里填写答案 */
}
输入样例1:
18 12
输出样例1:
6
36
输入样例2:
2 18
输出样例2:
2
18
实验代码:
public static int gcd ( int m, int n ) //求最大公约数{
int g;
int min=(m<n)?m:n;
for(int i = min;;i--){
if(m%i==0 && n%i==0){
g = i;
break;
}
}
return g;
}
public static int lcm ( int m, int n ) //求最小公倍数{
int l;
if(m>n){
for(int i = m;;i++){
if (i % m == 0 && i % n == 0) {
l = i;
break;
}
}
}else{
for(int i = n;;i++){
if (i % m == 0 && i % n == 0) {
l = i;
break;
}
}
}
return l;
}
6-4 sdut-fun-4 求球的体积
根据输入的半径值,计算球的体积。 输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。 输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。 已知:PI=3.1415926
函数接口定义:
//请根据主方法中的上下文及题目要求自行定义所需要的方法。
裁判测试程序样例:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner reader =new Scanner(System.in);
double r; //球的半径
while(reader.hasNext())
{
r=reader.nextDouble();
System.out.printf("%.3f\n",volumn(r));
}
}
/* 请在这里填写答案 */
}
输入样例:
1
2
3
4
输出样例:
4.189
33.510
113.097
268.083
实验代码:
public static double volumn(double r){
double PI = 3.1415926;
double v = 4.0*PI*r*r*r/3;
return v;
}
6-5 sdut-fun-5-组合数的计算
在数学中,从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数。在线性写法中被写作C(n,m)。
组合数的计算公式为:
输入格式: 第一行为一个整数n,表示有多少组测试数据。(n <= 100000) 第2-n+1行,每行两个整数分别代表a,b;中间用空格隔开。(a,b <= 40) 输出格式: 对于每组输入,输出其组合数的值。每个输出占一行。
函数接口定义:
public static int factorial(int n) ; //求n的阶乘
裁判测试程序样例:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
int count = reader.nextInt();
for (int i = 0; i < count; i++) {
int n = reader.nextInt();
int m = reader.nextInt();
System.out.println(factorial(n) / (factorial(m) * factorial(n - m)));
}
reader.close();
}
/* 请在这里填写答案 */
}
输入样例:
4
3 1
4 2
5 0
1 1
输出样例:
3
6
1
1
实验代码:
public static int factorial(int n){
int f=1;
for(int i=2; i <= n; i++){
f*=i;
}
return f;
}