大数相乘(n阶乘实现)
来源:互联网 发布:免费淘宝推广软件 编辑:程序博客网 时间:2024/06/05 02:27
#include<iostream>#include<string>#include<vector>using namespace std;string IntToStr(int x){string str;int t;while (x){t = x % 10;str += t + '0';x /= 10;}return str;}vector<string> Mul(string str1, string str2){int len1 = str1.size();int len2 = str2.size();int t, num, r,sr,tr;vector<string> svec;for (int i = 0; i < len1; i++){string str;for (int k = i; k > 0; k--){str += '0';}num = str1[i] - '0';r = 0;for (int j = 0; j < len2; j++){t = str2[j] - '0';sr = num * t + r;if (sr >= 10){tr = sr % 10;str += tr + '0';r = sr / 10;}elsestr += sr + '0';}if (r != 0)str += r + '0';svec.push_back(str);}return svec;}string ADD(vector<string> svec){int sr = 0;int l = svec[0].size();string str;int n = svec.size();for (int i = 1; i < n; i++){if (l < svec[i].size())l = svec[i].size();}int r = 0;for (int i = 0; i < l; i++){int sum = 0;for (int j = 0; j < n; j++){if (i >= svec[j].size())sum += 0;else sum += svec[j][i] - '0';}sum += r;sr = sum % 10;str += sr + '0';r = sum / 10;}if (r != 0)str += r + '0';reverse(str.begin(), str.end());return str;}int main(){int n1;while (cin >> n1){string str = "1";while (n1){reverse(str.begin(), str.end());str = ADD(Mul(str, IntToStr(n1)));n1--;}cout << str << endl;}return 0;}
0 0
- 大数相乘(n阶乘实现)
- 大数相乘 例 n的阶乘
- ObjC 实现的大数相加,大数相乘和n的阶乘
- asp利用数组实现阶乘计算(大数相乘)
- 大数相乘(大数阶乘模板)
- HDOJ1042 N!(大数阶乘)
- 1057 N的阶乘(大数阶乘)
- N的阶乘(大数阶乘算法)
- (大数乘小数、大数加小数、大数相乘、大数阶乘、大数进制转换)
- 大数相乘和n!
- 3000阶乘_大数相乘
- 大数相加相乘及阶乘
- 大数阶乘-N的阶乘
- N!(1042)hdu(大数阶乘)
- HDU 1042 N!(大数阶乘)
- n 的阶乘 C 语言版(大数)
- 计算N的阶乘(大数)
- hdu 1042 N!(大数阶乘)
- velocity的使用简介
- Android Training - 避免程序无响应ANR
- URI与URL的区别
- Android 网络请求框架之Rxjava+Retrofit
- oracle 根据单列去重复
- 大数相乘(n阶乘实现)
- mmap函数使用与实例详解
- JavaScript解析URL
- LeetCode笔记:326. Power of Three
- Latex不能编译eps文件
- 如何从Eclipse官网下载我们想要的版本
- 淘宝定时任务 tbschedule实战
- import Image 出错
- LeetCode 400 Nth Digit