正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。
输入描述:
输入两个正整数A和B。
输出描述:
输出A和B的最小公倍数。
输入
5 7
输出
35
import java.util.Scanner;
public class Main {
public static int getResult(int m ,int n){
if(m
计算一个数字的立方根,不使用库函数
详细描述:
接口说明
原型:
public static double getCubeRoot(double input)
输入:double 待求解参数
返回值:double 输入参数的立方根,保留一位小数
输入描述:
待求解参数 double类型
输出描述:
输入参数的立方根 也是double类型
输入
216
输出
6.0
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
double d = Double.parseDouble(str);
System.out.println(getValue(d));
}
public static double getValue(double d){
double x = 1;
double x0 = x - (x * x * x - d) / (3 * x * x);
while (x - x0 > 0.00000001 || x - x0 < -0.000000001){
x = x0;
x0 = x - (x * x * x - d) / (3 * x * x);
}
double value = (double) Math.round(x0 * 10.0) / 10.0;
return value;
}
}
将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。 如:输入“I am a student”,输出“tneduts a ma I”。
输入参数:
inputString:输入的字符串
返回值:
输出转换好的逆序字符串
输入描述:
输入一个字符串,可以有空格
输出描述:
输出逆序的字符串
输入
I am a student
输出
tneduts a ma I
import java.io.*;
import java.util.Scanner;
public class Main{
public static void main(String [] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
StringBuffer output = new StringBuffer();
for (int i = input.length() - 1; i >= 0; i--) {
output.append(input.charAt(i));
}
System.out.println(output.toString());
}
}
从输入任意个整型数,统计其中的负数个数并求所有非负数的平均值,结果保留一位小数,如果没有非负数,则平均值为0
本题有多组输入数据,输入到文件末尾,请使用while(cin>>)读入
输入描述:
输入任意个整数
输出描述:
输出负数个数以及所有非负数的平均值
输入
-13
-4
-7
输出
3
0.0
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] nums = br.readLine().split(" ");
int negativeNum = 0;
int positiveNum = 0;
int sum = 0;
for (int i = 0; i < nums.length; i++) {
int num = Integer.parseInt(nums[i]);
if (num < 0) {
negativeNum++;
} else {
sum += num;
positiveNum++;
}
}
System.out.println(negativeNum);
System.out.println(Math.round(sum * 10.0 / positiveNum) / 10.0);
}
}
连续输入字符串(输出次数为N,字符串长度小于100),请按长度为8拆分每个字符串后输出到新的字符串数组,
长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
首先输入一个整数,为要输入的字符串个数。
输入:2
abc
12345789
输出:abc00000
12345678
90000000
接口函数设计如下:
/*****************************************************************************
功能:存储输入的字符串
输入:字符串
输出:无
返回:0表示成功,其它返回-1
******************************************************************************/
int AddString(char *strValue);
/****************************************************************************
功能:获取补位后的二维数组的长度
输入:无
输出:无
返回:二维数组长度
*****************************************************************************/
int GetLength();
/*****************************************************************************
功能:将补位后的二维数组,与输入的二维数组做比较
输入:strInput:输入二维数组,iLen:输入的二维数组的长度
输出:无
返回:若相等,返回0;不相等,返回-1.其它:-1;
******************************************************************************/
int ArrCmp(char strInput[][9],int iLen);
输入描述:
首先输入数字n,表示要输入多少个字符串。连续输入字符串(输出次数为N,字符串长度小于100)。
输出描述:
按长度为8拆分每个字符串后输出到新的字符串数组,长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入
2
abc
123456789
输出
abc00000
12345678
90000000
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader bufrd = new BufferedReader(new InputStreamReader(System.in));
String input;
while((input=bufrd.readLine())!=null){
int count=Integer.parseInt(input);
StringBuilder result = new StringBuilder();
for(int i=0;i0){
length++;
}
for (int j=0;jinput.length()){
end=input.length();
}
String current = input.substring(start,end);
result.append(current);
if(current.length()<8);
for(int k=0;k<8-current.length();k++){
result.append("0");
}
result.append("\n");
start+=8;
end+=8;
}
}
System.out.println(result.toString().trim());
}
}
}
题目描述
Redraiment是走梅花桩的高手。Redraiment总是起点不限,从前到后,往高的桩子走,但走的步数最多,不知道为什么?你能替Redraiment研究他最多走的步数吗?
样例输入
6
2 5 1 5 4 5
样例输出
3
提示
Example:
6个点的高度各为 2 5 1 5 4 5
如从第1格开始走,最多为3步, 2 4 5
从第2格开始走,最多只有1步,5
而从第3格开始走最多有3步,1 4 5
从第5格开始走最多有2步,4 5
所以这个结果是3。
接口说明
方法原型:
int GetResult(int num, int[] pInput, List pResult);
输入参数:
int num:整数,表示数组元素的个数(保证有效)。
int[] pInput: 数组,存放输入的数字。
输出参数:
List pResult: 保证传入一个空的List,要求把结果放入第一个位置。
返回值:
正确返回1,错误返回0
输入描述:
输入多行,先输入数组的个数,再输入相应个数的整数
输出描述:
输出结果
输入
6
2
5
1
5
4
5
输出
3
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
String input;
while ((input = read.readLine())!=null){
int num = Integer.parseInt(input);
String[] strs = read.readLine().split(" ");
int[] nums = new int[num];
int max = 0;
for(int i=0;imax){
max=result[i];
}
}
System.out.println(max);
}
}
}
如果统计的个数相同,则按照ASCII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。
实现以下接口:
输入一个字符串,对字符中的各个英文字符,数字,空格进行统计(可反复调用)
按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASII码由小到大排序输出
清空目前的统计结果,重新统计
调用者会保证:
输入的字符串以‘\0’结尾。
输入描述:
输入一串字符。
输出描述:
对字符中的
各个英文字符(大小写分开统计),数字,空格进行统计,并按照统计个数由多到少输出,如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。
输入
aadddccddc
输出
dca
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str;
while((str=br.readLine())!=null){
char[] chArr = str.toCharArray();
int[] temp = new int[150];
for(int i=0;i
输入整型数组和排序标识,对其元素按照升序或降序进行排序(一组测试用例可能会有多组数据)
接口说明
原型:
void sortIntegerArray(Integer[] pIntegerArray, int iSortFlag);
输入参数:
Integer[] pIntegerArray:整型数组
int iSortFlag:排序标识:0表示按升序,1表示按降序
输出参数:
无
返回值:
void
输入描述:
1、输入需要输入的整型数个数
输出描述:
输出排好序的数字
输入
8
1 2 4 9 3 55 64 25
0
输出
1 2 3 4 9 25 55 64
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = "";
while((line = br.readLine()) != null){
int n=Integer.parseInt(line);
String[] data=br.readLine().split(" ");
int m=Integer.parseInt(br.readLine());
int[] arr=new int[n];
for(int i=0;i
功能:等差数列 2,5,8,11,14。。。。
输入:正整数N >0
输出:求等差数列前N项和
返回:转换成功返回 0 ,非法输入与异常返回-1
本题为多组输入,请使用while(cin>>)等形式读取数据
输入描述:
输入一个正整数。
输出描述:
输出一个相加后的整数。
示例1
输入
2
输出
7
import java.io.*;
public class Main{
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = "";
while((str=br.readLine())!=null){
int n = Integer.parseInt(str);
System.out.println((3*n*n+n)/2);
}
}
}
自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 = 625,76^2 = 5776,9376^2 = 87909376。请求出n以内的自守数的个数
接口说明
/*
功能: 求出n以内的自守数的个数
输入参数:
int n
返回值:
n以内自守数的数量。
*/
public static int CalcAutomorphicNumbers( int n)
{
/在这里实现功能/
return 0;
}
本题有多组输入数据,请使用while(cin>>)等方式处理
输入描述:
int型整数
输出描述:
n以内自守数的数量。
示例1
输入
2000
输出
8
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str;
while((str=br.readLine())!=null){
int n = Integer.parseInt(str);
int count = 0;
for(int i=0;i<=n;i++){
int r= i;
int k = 0;
while(r!=0){
r = r/10;
k++;
}
if((i*i-i)%(Math.pow(10,k)) == 0){
count++;
}
}
System.out.println(count);
}
}
}
首先输入要输入的整数个数n,然后输入n个整数。输出为n个整数中负数的个数,和所有正整数的平均值,结果保留一位小数。
输入描述:
首先输入一个正整数n,
然后输入n个整数。
输出描述:
输出负数的个数,和所有正整数的平均值。
示例1
输入
5
1
2
3
4
5
输出
0 3
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
public class Main {
public static void main(String[] sa) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = "";
while((line=br.readLine())!=null){
int N = Integer.parseInt(line);
int negativeCount=0;
int positiveCount=0;
int positiveSum = 0;
String[] strs = br.readLine().split(" ");
for(int i=0;i 0){
++positiveCount;
positiveSum += temp;
}
else if(temp < 0)
++negativeCount;
}
System.out.println(negativeCount+" "+Math.round(positiveSum * 10.0/positiveCount)/10.0);
//System.out.printf("%d %.1f\n",negativeCount,positiveSum*1.0/positiveCount);
}
}
}
将一个字符中所有出现的数字前后加上符号“*”,其他字符保持不变
public static String MarkNum(String pInStr)
{
return null;
}
注意:输入数据可能有多行
输入描述:
输入一个字符串
输出描述:
字符中所有出现的数字前后加上符号“*”,其他字符保持不变
示例1
输入
Jkdi234klowe90a3
输出
Jkdi*234*klowe*90*a*3*
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String line=null;
while((line=br.readLine())!=null){
StringBuffer sb=new StringBuffer();
char[] chs=line.toCharArray();
for(int i=0;i='0')&&(chs[i]<='9')){
sb.append("*"+chs[i]);
i++;
while((i='0')&&(chs[i]<='9')){
sb.append(chs[i]);
i++;
}
sb.append("*");
}
if(i
考试题目和要点:
1、中文大写金额数字前应标明“人民币”字样。中文大写金额数字应用壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿、元、角、分、零、整等字样填写。(30分)
2、中文大写金额数字到“元”为止的,在“元”之后,应写“整字,如¥ 532.00应写成“人民币伍佰叁拾贰元整”。在”角“和”分“后面不写”整字。(30分)
3、阿拉伯数字中间有“0”时,中文大写要写“零”字,阿拉伯数字中间连续有几个“0”时,中文大写金额中间只写一个“零”字,如¥6007.14,应写成“人民币陆仟零柒元壹角肆分“。(
输入描述:
输入一个double数
输出描述:
输出人民币格式
输入
151121.15
输出
人民币拾伍万壹仟壹佰贰拾壹元壹角伍分
import java.io.*;
import java.util.*;
public class Main{
public static HashMap numMap = new HashMap();
public static HashMap danweiMap = new HashMap();
static{
numMap.put('0',"零");
numMap.put('1',"壹");
numMap.put('2',"贰");
numMap.put('3',"叁");
numMap.put('4',"肆");
numMap.put('5',"伍");
numMap.put('6',"陆");
numMap.put('7',"柒");
numMap.put('8',"捌");
numMap.put('9',"玖");
numMap.put('.',"");
danweiMap.put(1,"分");
danweiMap.put(2,"角");
danweiMap.put(3,"");
danweiMap.put(4,"元");
danweiMap.put(5,"拾");
danweiMap.put(6,"佰");
danweiMap.put(7,"仟");
danweiMap.put(8,"万");
danweiMap.put(9,"拾");
danweiMap.put(10,"佰");
danweiMap.put(11,"仟");
danweiMap.put(12,"拾");
danweiMap.put(13,"佰");
danweiMap.put(14,"仟");
}
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = null;
while((input = br.readLine())!=null){
char[] cArray = input.toCharArray();
StringBuilder result = new StringBuilder("人民币");
int length = cArray.length;
//用于记录数字是否为0
boolean flag = true;
if(input.equals("0.00")){
result.append("零元整");
}else if(cArray.length>=4 && cArray[0] != '0'){
for(int i=0;i2){
result.append(numMap.get(cArray[i]));
flag = false;
}else if(cArray[i] != '0'){
if(cArray[i] == '1' && ((length-i)==5 || (length-i)==9 ||(length-i)==12)){
result.append(danweiMap.get(length-i));
}else{
result.append(numMap.get(cArray[i]));
result.append(danweiMap.get(length-i));
}
flag = true;
}
}
}else if(cArray.length == 4 && cArray[0] == '0'){
for(int i=1;i