高精度的运算在Java中是很容易实现的,就像 a + b Problem 一样,因为Java提供了相应的类库和API;但是在 C/C++ 当中就没有那么现成的类和API来让你调用了。本着“自己动手,丰衣足食”的Coder精神,还是自己上吧。让我们一起看看如何使用 C/C++ 来进行大数的阶乘吧。/*...
分类:
编程语言 时间:
2015-04-04 13:35:23
阅读次数:
281
题目描述:
根据输入的运算符对输入的整数进行简单的整数运算。
运算符只会是加+、减-、乘*、除/、求余%、阶乘!六个运算符之一。
输出运算的结果,如果出现除数为零,则输出“error”,如果求余运算的第二个运算数为0,也输出“error”。
输入:
输入为一行。先输入第一个整数,空格输入运算符,然后再空格输入第二个整数,回车结束本次输入。
如果运算符为阶乘!符号,则不输入第二个...
分类:
其他好文 时间:
2015-04-03 19:29:17
阅读次数:
167
首先是自己写的代码如下:
// sinx.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "math.h"
//该函数计算阶乘
double ProductFunc(double x)
{
double product =x;
while (1!=x)
{
product *= (--x);
}
return pro...
分类:
其他好文 时间:
2015-04-03 13:33:20
阅读次数:
283
#include#includeusing namespace std;int main(){ int n; while(cin>>n){ int i,j,k=0,a[10000]; a[0]=1; for(i=1;i=0;i--) ...
分类:
其他好文 时间:
2015-04-02 20:36:32
阅读次数:
126
求一个数有N多少位,可用log10(N)+1,于是,求N!有多少位 log10(1*2*3*……*n)=log10(1)+log10(2)+……+log10(N)+1#include#includeusing namespace std;int main(){ int n,i,m,j; ...
分类:
其他好文 时间:
2015-04-02 20:29:30
阅读次数:
118
codeforces 525 E Anya and Cubes 中途相遇法
题意:
给出n个数a1,a2,...,an,要求从中选出一些数,可以把其中最多k个变成它自己的阶乘,然后选出的数求和,问最后和等于s的选法有多少种。
限制:
1
思路:
一般数据量20~30都会考虑中途相遇法,就是折半暴力。
ps:用三进制暴力会比直接深搜多一个常数10,因为三进制暴力要把数分解...
分类:
其他好文 时间:
2015-04-02 11:41:54
阅读次数:
152
个数等于2的因子数+1 类似于求一个数二进制表示中1的个数 有三种求法,第一种是不断除2,也就是右移,但原问题对负数不能这么做,现在N!结果中不为负数,所以不存在这种问题 第二种求法是不断对index乘以2,然后对相应位求与 第三种是x&(x-1)不断的判断 现提供第四种方法,该方法只适用于阶乘
分类:
其他好文 时间:
2015-04-01 23:42:37
阅读次数:
195
我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,可以看出:fact(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! x n = fact(n-1) x n所以,fact(n)可以表示为n x fact(n-1),...
分类:
其他好文 时间:
2015-04-01 16:47:26
阅读次数:
203
说的是给了n个立方体,立方体从1标号到n,每个立方体上有一个数字, 你有 k 个机会 使得其中 k个数位他们自己的阶乘,(自然使用可以少于k次机会,每个立方体最多被使用1次) ,那么求出你从这n个立方体重选出任意个立方体使得 他们的和为Sn 2 #include 3 #include 4 #in.....
分类:
其他好文 时间:
2015-03-31 21:50:25
阅读次数:
123
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3123The GNU Compiler Collection (usually shortened to GCC) is a compiler system produced by the GNU Pro...
分类:
其他好文 时间:
2015-03-31 21:48:38
阅读次数:
158