一、猴子吃包子
“/”是整除,只能得到小数点前面的位置,为了得到小数在前面乘上1.0
当要保留的位数是输入的时,"%."+wei+“f”
import java.util.Scanner;
public class Baozi {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s=new Scanner(System.in);
int x=s.nextInt();
int y=s.nextInt();
int z=s.nextInt();
long x1=s.nextLong();
long y1=s.nextLong();
long z1=s.nextLong();
int wei=s.nextInt();
double x2=1.0*x1/x;
double y2=1.0*y1/y;
double z2=1.0*z1/z;
double sum=x2+y2+z2;
System.out.printf("%."+wei+"f", sum);
}
}
二、Yaroslav and Algorithm
char[] toCharArray() 将此字符串转换为一个新的字符数组。
这道题貌似就是实现十进制的加一,但没那么简单…
这个答案只有75分,无能为力了,一直运行超时…
import java.util.Scanner;
public class Yaroslav{
public static void main(String[] args)
{
Scanner s=new Scanner(System.in);
int n=s.nextInt();
s.nextLine(); //这一句好像必须加上,不然是错的
while (n!=0)
{
String src = s.nextLine(); //必须以字符串的形式输入
char[] num = src.toCharArray();
int flag = 0;
for(int i=num.length-1; i>=0; i--)
{
if(num[i]=='9')
num[i] = '0';
else
{
num[i] += 1;
flag = 1;
break;
}
}
String out = new String(num); //字符数组转化为字符串
if(flag != 1)
out = "1" + out;
System.out.println(src+"<>"+out);
n--;
}
}
}
三、RP大冒险
输入格式:一个数N表示测点编号。
输出格式:一个0~9的数。
样例输出:当且仅当输出仅有一个数X且X为0~9的数时你的得分不为零,此时你的得分为系统根据你的输出而计算出的你本次的RP。
究竟使用怎样的函数才能获得较高的RP呢?指数函数?幂函数?斐波那契数?圆周曲线的导数函数?
不懂啥意思…
1.static double random() 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0
2.static double pow(double a, double b) 返回第一个参数的第二个参数次幂的值
线性函数,只有80分…
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
if(n > 10)
n %= 10;
System.out.println((int)(n*Math.random())); //线性函数
}
}
指数函数,102分,但仍显示有错误…
System.out.println((int)(Math.pow(n,Math.random()))); //改变输出语句