nyoj 65-另一种阶乘问题 (Java 高精度)
65-另一种阶乘问题
内存限制:64MB
时间限制:3000ms
特判: No
通过数:16
提交数:18
难度:1
题目描述:
大家都知道阶乘这个概念,举个简单的例子:5!=1*2*3*4*5.现在我们引入一种新的阶乘概念,将原来的每个数相乘变为i不大于n的所有奇数相乘例如:5!!=1*3*5.现在明白现在这种阶乘的意思了吧!
现在你的任务是求出1!!+2!!......+n!!的正确值(n<=20)
输入描述:
第一行输入一个a(a<=20),代表共有a组测试数据
接下来a行各行输入一个n.
输出描述:
各行输出结果一个整数R表示1!!+2!!......+n!!的正确值
样例输入:
2
3
5
样例输出:
5
23 分析:
1、阶乘公式的变形,因为数据比较小不用高精度也可以解决问题 核心代码:
int a = scan.nextInt();
ans = BigInteger.ZERO;
for(int i = 1; i <= a; ++ i) {
temp = BigInteger.ONE;
for(int j = 1; j <= i; j += 2) {
temp = temp.multiply(BigInteger.valueOd(j));
}
ans = ans.add(temp);
}
Systemp.out.println(ans);
java代码实现(AC):
import java.util.*;
import java.io.*;
import java.math.*; public class Main {
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
BigInteger ans ,temp;
int t = scan.nextInt();
while (t > 0) {
t--;
int a = scan.nextInt();
ans = BigInteger.ZERO;
for(int i = 1; i <= a; ++ i){
temp = BigInteger.ONE;
for(int j = 1; j <= i; j += 2){
temp = temp.multiply(BigInteger.valueOf(j));
}
ans = ans.add(temp);
}
System.out.println(ans);
}
}
}
nyoj 65-另一种阶乘问题 (Java 高精度)的更多相关文章
- NYOJ题目65另一种阶乘问题
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsIAAAJhCAIAAADE+EHOAAAgAElEQVR4nO3drXLjSAMu4HMT4bmQYF
- ACM 韩信点兵 、n的另一种阶乘、6174的问题
3.6174问题 描述 假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个数,并且继续操作.例如,从1234出发,依次可以得到4321- ...
- 几种任务调度的 Java 实现方法与比较
综观目前的 Web 应用,多数应用都具备任务调度的功能.本文由浅入深介绍了几种任务调度的 Java 实现方法,包括 Timer,Scheduler, Quartz 以及 JCron Tab,并对其优缺 ...
- ACM 另一种阶乘问题
另一种阶乘问题 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 大家都知道阶乘这个概念,举个简单的例子:5!=1*2*3*4*5.现在我们引入一种新的阶乘概念,将原来 ...
- 几种任务调度的 Java 实现方法与比较Timer,ScheduledExecutor,Quartz,JCronTab
几种任务调度的 Java 实现方法与比较 综观目前的 Web 应用,多数应用都具备任务调度的功能.本文由浅入深介绍了几种任务调度的 Java 实现方法,包括 Timer,Scheduler, Quar ...
- 几种任务调度的 Java 实现方法与比较--转载
前言 任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务.本文由浅入深介绍四种任务调度的 Java 实现: Timer ScheduledExecutor 开源工具包 Quartz ...
- NYOJ--65--另一种阶乘问题
/* Name: NYOJ--65--另一种阶乘问题 Date: 17/04/17 16:35 Description: 去年刚开始做题时的代码看不下去了,再做,打表呗 */ #include< ...
- 反转字符串的几种实现(Java)
反转字符串的几种实现(Java) 首先第一种是利用Java中的类库对象进行反转 //第一种 使用Java类库的diam实现反转 public String reverse(String str){ S ...
- JAVA写JSON的三种方法,java对象转json数据
JAVA写JSON的三种方法,java对象转json数据 转自:http://www.xdx97.com/#/single?bid=5afe2ff9-8cd1-67cf-e7bc-437b74c07a ...
随机推荐
- [UWP]使用CompositionLinearGradientBrush实现渐变画笔并制作动画
1. 什么是 CompositionBrush CompositionBrush(合成画笔)是操作可视化层时用于绘制 SpriteVisual 区域的画笔. 使UWP 应用时可以选择使用 XAML 画 ...
- Go.js 没有中文文档 也没有中文demo 学起来很费劲 给大家整理一个算是详细的文档
<!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...
- 关于M23内核简介 - 待续
1.定位 M23是基于最新的ARMv8-M构架的主要关注低功耗应用的微控制器,未来会是M0.M0+的替代品. M33是基于最新的ARMv8-M构架的主要关注高能效应用的微控制器,未来会替换M3.M4. ...
- < 配置jupyer notebook遇到的问题 - 500 : Internal Server Error >
< anaconda配置jupyer notebook遇到的问题 - 500 : Internal Server Error > 问题描述: 我的jupyer notebook是在anac ...
- BrickerBot
BrickerBot 概况 <大华(Dahua)安防监控设备弱口令问题报告 >主要提到是Telnet弱口令 root/vizxv 相关链接:(发布时间:2015年4月1日) 通过Telne ...
- 在ArangoDB中实现connectedcomponents算法
操作环境: tool:ArangoDB 3.3.13 操作系统:Debian 7.2.0-20 概念: Connected Components即连通体算法.用id标注图中每个连通体,将连通体中序号最 ...
- 回话技术-Cookie-记录上一次访问时间
效果: 第一次访问: 再次访问: <%@ page import="java.util.Date" %> <%@ page import="java.t ...
- Windows 10 + kali Linux 双系统安装教程(详细版)
准备工具如下: kali Linux 镜像 准备一4G以上的U盘 制作U盘启动盘工具- Win32DiskImager 添加引导工具-EasyBCD 留出一个空的盘,哪个盘的空间比较大可以压缩出大概2 ...
- 【C#多线程】2.线程池简述+两种传统的异步模式
线程池简述+两种传统的异步编程模式 1.线程池简述 首先我们要明确一点,编程中讲的线程与平时我们形容CPU几核几线程中的线程是不一样的,CPU线程是指逻辑处理器,比如4核8线程,讲的是这个cpu有8个 ...
- git log 附加命令归纳
git查看历史记录的时候查看每次提交的内容差异: git log -p git限制显示的条数 : git log -p -2 [-2] git简单显示每次提交做了哪些改动: git log --sta ...