输入,启动资金和景点数目。输出要打工的次数
使用递归法完成下面编程
问题描述:小明热爱旅行,但是资金不足。小明想使用边打工变旅行的方式来进行旅游。小明启动资金是w元,每经过一个景点花费资金的1/10。若资金为少于500元的时候,小明就要打工,每次打工会赚到600元。现在要求输入,启动资金和景点数目。输出要打工的次数。
输入:w,n
输出:z
其中z是打工的次数
程序代码
package com.算法设计与分析报告题目;
import java.util.Scanner;
public class text2 {
// 算出打工次数//变量w为资金,n旅游景点数目,z打工次数
static int worksum(int w, int n, int z) {
if (w < 500) { // 如果资金少于500,
z++; // 打工
w += 600; // 资金加600
}
w = w - w / 10; // 旅游资金少资金的1/10
n--; // 旅游景点次数减一
if (n > 0) { // 如果还有旅游景点数目再次前进
z = worksum(w, n, z); // 递归方法
}
return z; // 打工次数
}
public static void main(String[] args) {
// 声明变量x为资金,y旅游景点数目,z打工次数
int x, y, z = 0;
Scanner sc = new Scanner(System.in);
System.out.println("班级……%&**#@#¥");
System.out.print("输入旅游资金:");
x = sc.nextInt(); // 键盘输入资金
System.out.print("输入旅游景点的数目:");
y = sc.nextInt(); // 键盘输入景点数目
z = text2.worksum(x, y, 0);
System.out.print("一共要打工次数为:" + z);
}