题解 | #汽水瓶#

package 华为.模拟;
/*

  • 动态规划:
  • dp[i]:表示以i个汽水瓶能够换取的汽水个数
  • dp[i]=i/3+dp[i/3+i%3]
  • 边界条件:dp[1] = 0;dp[2] = 1
  • /
    import java.util.Scanner;

public class 汽水瓶 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
//输入汽水瓶个数
int n = sc.nextInt();
if (n==0) {
continue;
}
System.out.println(calue(n));
}
}

private static int calue(int n) {
    int[] dp = new int[n+1];
    dp[1] = 0;
    dp[2] = 1;
    for (int i = 3; i <= n; i++) {
        dp[i]=i/3+dp[i/3+i%3];
    }
    return dp[n];
}

}

全部评论

相关推荐

11-01 08:48
门头沟学院 C++
伤心的候选人在吵架:佬你不要的,能不能拿户口本证明过户给我。。球球了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-24 20:55
阿里国际 Java工程师 2.7k*16.0
程序员猪皮:没有超过3k的,不太好选。春招再看看
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务