uva 10523 Very Easy !!! 大数模拟加法和乘法
来源:互联网 发布:C语言经典算法实现 编辑:程序博客网 时间:2024/06/08 03:51
题意:求Σi*a^i, 1<=i<=n,因为n过于庞大,只能用大数做
思路:就大数模板题,注意下a==0就可以了
题目链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=17&page=show_problem&problem=1464
#include <cstdio>#include <cstring>#include <string>#include <algorithm>#include <iostream>using namespace std;int n, x;const int maxn = 10005;const int base = 10;//这里表示10进制,可以使用百进制,千进制都可class Biginteger{public: int num[maxn]; int cnt;//cnt是数字长度 void init() { cnt = 0; memset(num, 0, sizeof(num)); } void show() { for(int i=cnt-1; i>=0; i--) printf("%d",num[i]); printf("\n"); }};Biginteger a, b, c;//a是累乘的结果,b是累加的结果, c为输入的xvoid multi(int k){ for(int i=0; i<a.cnt; i++) { a.num[i] *= k; } int i; for(i=0; i<a.cnt; i++) { a.num[i+1] += a.num[i]/base; a.num[i] %= base; } while(a.num[i]) { a.num[i+1] = a.num[i]/base; a.num[i] %= base; i++; } while(i>=0 && !a.num[i]) i--;//去到最后一位不为0的位置 a.cnt = i+1;}Biginteger add(const Biginteger &e, const Biginteger &f){ Biginteger h; h.init(); for(int i=0, j=0, g=0; ; i++, j++) { if(g==0 && i>=e.cnt && j>=f.cnt) break; int x = g; if(i < a.cnt) x += e.num[i]; if(j < b.cnt) x += f.num[i]; h.num[h.cnt++] = x%base; g = x/base; } return h;}int main(){ while(~scanf("%d%d", &n, &x)) { if(x == 0) { printf("0\n"); continue; } a.init(), b.init(); c.cnt = 1, c.num[0] = x; for(int i=1; i<=n; i++) { a.init();//这里一定要清空 a.cnt = 1, a.num[0] = 1; for(int j=1; j<=i; j++)//累乘 { multi(x); } multi(i); b = add(a, b);//累加 } b.show(); } return 0;}
0 0
- uva 10523 Very Easy !!! 大数模拟加法和乘法
- Uva 10523 Very Easy!!!
- UVa 10523 - Very Easy !!!
- uva 10523 Very Easy !!!
- 大数加法和乘法
- 大数加法和乘法
- 大数加法和大数乘法
- 大数加法和大数乘法
- uva 465 - Overflow 大数加法 大数乘法
- 大数加法、减法和乘法
- 大数加法和大数乘法的实现
- 大数加法和大数乘法模板函数
- (数组应用二:高精度运算4.2.2)UVA 10523 VERY EASY !!! (大数累加)
- 大数加法 大数乘法
- 大数的加法和乘法,高精度
- 大数加法乘法
- 大数减法、加法、乘法
- 大数加法与乘法
- android studio使用eclipse的debug.keystore
- 第九周实践项目3-人数不定的工资类
- android sdk下载镜像
- No cached version of com.android.tools.build:gradle:2.0.0 available for offline mode.
- Java第八次实验要求
- uva 10523 Very Easy !!! 大数模拟加法和乘法
- 安装Grass GIS
- eclipse中一些常见svn图标的含义
- 算法的概念和评价以及查找算法
- 那些硬着头皮去做的事,终将让你长进
- Android深入浅出之Binder机制
- 迭代(Iteration)与递归(Recursion)
- hdu 1021 - Fibonacci Again
- setUserVisibleHint()方法的懒加载