1.小明买笔
【问题描述】每年过年的时候,小明总是要为新学期准备很多的水笔。今天商店搞活动,每满5支送1支,若满20支则赠送5支,每支水笔5元。小明一共带了n(n>10)元钱,希望能买到最多的水笔,编写程序请你帮他计算他最多能买到多少支?
【输入形式】
输入小明带的钱数n(整数)
【输出形式】
输出小明最多可以买到几支笔(整数)
【样例输入】
100
【样例输出】
25
public static void main(String[] args){
Scanner scanner= new Scanner(System.in);
int a,b,c;
a = scanner.nextInt();//读取输入
c = a / 5;//一支笔5块。计算能卖多少支笔
if(c >= 5 && c < 20)
c = c + c / 5;//如果买了20支以内,那么增加买五送一的数量
if(c >= 20) {
b = c % 20;
c = c + (c / 20) * 5 + b / 5;//如果超过20支笔,单独计算超过的部分
}
System.out.print(c);
}
这道题比较简单,到达20支送5支,超过部分按买五送一来,所以只要计算一次买二十送五就好了
2.大象喝水
【问题描述】一只大象口渴了,要喝20升水才能解渴,但现在只有一个深为h厘米,底面积为s平方厘米的小圆桶(h和s是浮点数)。编写程序,计算大象至少要喝多少桶水才能解渴。
【输入形式】
输入桶高和桶底面积
【输出形式】
大象至少要喝的桶数(整数)。
【样例输入】
30 50
【样例输出】
14
public static void main(String[] args) {
Scanner a= new Scanner(System.in);
double h = a.nextDouble();//读取深度
double s =a.nextDouble();//读取底面积
double b=h*s;//计算容积
double c=20000/b;//计算桶的数量,因为水的密度为1所以不用额外转换
int tong =(int)(c);//结果转换为整数
if(tong %10==0){
System.out.println(tong);
}else{
System.out.println(tong+1);
}
3.求公式近似值
【问题描述】
已知ex的近似值可由下面公式计算得出:
ex=1 + x/1! + x2/2! + x3/3! + ...... + xn/n!
给定x和n,利用上述公式求得ex的近似值。
【输入形式】
从控制台输入数x,和整数n(n>=1),用空格隔开。
【输出形式】
向控制台输出求得的ex 的近似值(小数点后保留6位有效数据)。
【样例输入】
7 27
【样例输出】
1096.633156
【样例说明】
输入的x为7,n的值为27,即:求e7的近似值,利用上述公式求得的近似值为:1096.633156。
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double x = scanner.nextDouble();
int y = scanner.nextInt();
double a = jisuan(x, y);//调用方法jisuan并将结果赋值给a
System.out.printf("%.6f", a);
}
public static double jisuan(double x, int y) {//定义一个静态方法jisaun,计算给定x值和项数y时的泰勒级数近似值
double a = 1.0;// 初始化近似值为1.0,这是泰勒级数的第一项
double b = 1.0;// 初始化当前项为1.0,后续将逐步更新此项
double c = 1.0;// 初始化阶乘值为1.0,后续将逐步更新此项
for (int i = 1; i <= n; i++) {
b *= x / i;// 更新当前项的值,根据泰勒级数公式
c *= i;// 计算并更新阶乘值
a += b;// 将当前项累加到总近似值中
}
return a;
}