码迷,mamicode.com
首页 > 其他好文 > 详细

NYOJ题目65另一种阶乘问题

时间:2016-09-21 01:39:58      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

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

 

水、

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

 

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

NYOJ题目65另一种阶乘问题

标签:

原文地址:http://www.cnblogs.com/cc11001100/p/5891185.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!