老板发钱
老板共有n元,每次发奖金可以发1元,2元,3元,请问发n元一共有多少种发的方法?
import java.util.Scanner;
public class qianxin {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n=in.nextInt();
int []dp=new int[n+1];
if(n<=2){
System.out.print(n);
}
dp[1]=1;
dp[2]=2;
dp[3]=4;
for (int i=4;i<n+1;i++){
dp[i]=dp[i-1]+dp[i-2]+dp[i-3];
}
System.out.print(dp[n]);
}
}
撤销恢复
撤销/恢复操作具有广泛的用途,比如word文档中输入一个单词,可以点撤销,然后可以再恢复。
编程实现如下功能:从标准的输入读取到一个字符串,字符串可以包含0个或者多个单词,单词以空格或者tab分隔。如果遇到"undo"字符串表示“撤销”操作,前一个字符串被撤销掉;如果遇到"redo"字符串,表示恢复刚才撤销掉的字符串。
例如:
输入:
hello undo redo world
输出:
hello world
输入:
hello undo world undo like undo redo me
输出:
like me
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] strs = sc.nextLine().split("\\s+");
//"\\s"表示 空格,回车,换行等空白符,+号表示一个或多个的意思
System.out.println(Cal(strs));
}
public static String Cal (String[] strs) {
Stack<String> stack1 = new Stack<String> ();
Stack<String> stack2 = new Stack<String> ();
for (String str:strs){
if (str.equals("undo")) {
if (stack2.size()>0) {
stack1.push(stack2.pop());//将栈2中的元素压入栈1中
}
} else if