Fork me on GitHub

NYOJ题目65另一种阶乘问题

-------------------------------

 

水、

当然水题也要有缓存,缓存复用真是伟大的思想,膜拜提出此思想的不知道名字的神犇。

 

AC代码:

复制代码
 1 import java.util.Scanner;
 2 
 3 public class Main {
 4 
 5     public static void main(String[] args) {
 6         
 7         Scanner sc=new Scanner(System.in);
 8         
 9         int times=sc.nextInt();
10         while(times-->0){
11             int n=sc.nextInt();
12             System.out.println(solve(n));
13         }
14     }
15     
16     private static long buffer[]=new long[21];
17     
18     public static long fac(int n){
19         if(n/2*2==n) return 0;
20         if(n==1) return 1;
21         if(buffer[n]!=0) return buffer[n];
22         return buffer[n]=fac(n-2)*n;
23     }
24     
25     public static long solve(int n){
26         long res=0;
27         while(n>0) res+=n/2*2==n?fac(n---1):fac(n--);
28         return res;
29     }
30     
31 }
复制代码

 

题目来源: http://acm.nyist.net/JudgeOnline/problem.php?pid=65

posted @   CC11001100  阅读(181)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· 开发者新选择:用DeepSeek实现Cursor级智能编程的免费方案
· Tinyfox 发生重大改版
· 独立开发经验谈:如何通过 Docker 让潜在客户快速体验你的系统
· 小米CR6606,CR6608,CR6609 启用SSH和刷入OpenWRT 23.05.5
点击右上角即可分享
微信分享提示