题解 | #循环汉诺塔#

循环汉诺塔

https://www.nowcoder.com/practice/cdf0808f841748faba058c8ef538c731

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int n = in.nextInt();
        long ptoB = 0;
        long ptoC = 0;
        long toB = 1;
        long toC = 2;

        for (int i = 1; i < n; i++) {
            ptoB = toB;
            ptoC = toC;

            //该计算公式可以通过分析得出,受教于博客
            //https://blog.csdn.net/weixin_44473131/article/details/123994601?        	 ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%BE%AA%E7%8E%AF%E6%B1%89%E8%AF%BA%E5%A1%94%E9%97%AE%E9%A2%98&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-2-123994601.142^v96^pc_search_result_base2&spm=1018.2226.3001.4187
            toB = (2 * ptoC + 1) % 1000000007;
            toC = (2 * ptoC + 2 + ptoB) % 1000000007;
        }

        System.out.println(toB + " " + toC);
    }
}

全部评论

相关推荐

急急国王想要offer:就是不约,就不理我
投递腾讯等公司10个岗位
点赞 评论 收藏
分享
呆呆头:不适合,就跑,不要有压力,别给自己压力
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务