一、J1_27_1
啤酒每罐 2.3 元,饮料每罐 1.9 元。
小明买了若干啤酒和饮料,一共花了 82.3 元。
我们还知道他买的啤酒比饮料的数量少,请你编程计算他买了几罐啤酒。
注意:使用循环实现。
代码如下:
public class Week01 {
public static void main(String[] args) {
Double pj = 2.3,yl = 1.9;//啤酒和饮料价格
for(int p = 1;;p++){
for (int y = 1;y<p; y++) {
System.out.println(y*yl);
if( (p*pj) + (y*yl) == 82.3 ){
System.out.printf("他买了%d罐啤酒",p);
return;
}
}
}
}
}
二、J1_27_2
本月酒水的销售为 2!+4!+5!的值。n!表示 n 的阶乘,
例如:3!=3×2×1=6,5!=5×4×3 ×2×1=120。求这个值。 注意:分别利用递归和非递归方法实现求 n!。
代码如下:
public class Week02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入n:");
int n = sc.nextInt();
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += monthed(i);
}
System.out.println(sum);
}
/**
* 递归方法求阶乘
*
* @param n
* @return
*/
private static int monthed(int n) {
if (n == 0) {
return 1;
} else {
return n * monthed(n - 1);
}
}
}
二、J1_27_3
酒水产商临时打算,为系统增加新功能,根据特定算法生产特定的字符 logo。 把
abcd…s 共 19 个字母组成的序列重复拼接 106 次,得到长度为 2014 的串。
接下来删除第 1 个字母(即开头的字母 a),以及第 3个,第 5 个等所有奇数位置的字 母。得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请编程求解该字母。
代码如下:
public class Week03 {
public static void main(String[] args) {
String str = "abcdefghijklmnobqls";
StringBuffer str106 = new StringBuffer();
System.out.println(2014 / 106);
for (int i = 0; i < 106; i++) {
str106.append(str);
}
// 删除所有奇数位置的字母
String s = "";
while (str106.length() > 1) {
StringBuffer s2 = str106;
for (int i = 0; i < s2.length(); i++) {
if (i == 0 || (i + 1) % 2 != 0) {
s2.deleteCharAt(i);// 删除 char在这个序列中的指定位置。 返回值为StringBuffer
}
}
System.out.println(s2);
str106 = s2;
}
System.out.println("-----");
System.out.println(str106);
}
}