[HDU-5241] 大数乘法
来源:互联网 发布:好听的爱情句子知乎 编辑:程序博客网 时间:2024/06/01 08:36
找规律。。当时写出了等于1的可能是32个,就感觉是一个规律题,可是值比较大,就用到了大数乘法,然后可以看一看模板。
#include <stdio.h>#include <iostream>#include <vector>#include <math.h>#include <algorithm>#include <queue>#include <string.h>#include <set>#include <stack>#include <stdlib.h>using namespace std;struct Node{ int d[10009]; int len; Node() {memset(d, 0, sizeof(d));} Node(char *s) { memset(d, 0, sizeof(d)); int i = 0; while(s[i] != '\0') { d[i] = s[i] - '0'; ++i; } len = i; for(int i=0,j=len-1; i<j; i++,j--) swap(d[i],d[j]); } Node operator * (const Node &t) const { Node ans; for(int i=0;i<this->len;i++) { for(int j=0;j<t.len;j++) { ans.d[i+j] += this->d[i] * t.d[j]; } } for(int i=0;i<this->len+t.len;i++) { ans.d[i+1] += ans.d[i] / 10; ans.d[i] %= 10; } int len = this->len+t.len; while(len > 1 && ans.d[len-1] == 0) len--; ans.len = len; return ans; }};int main(){ int n; int T; cin >> T; int case_ = 0; while(T--) { cin >> n; printf("Case #%d: ",++case_); char s[20] = "32"; s[2] = 0; Node a(s); char s1[20] = "1"; s1[1] = 0; Node ans(s1); for(int i = 0; i < n; i++) ans = ans * a; for(int i=ans.len-1; i>=0; i--) printf("%d",ans.d[i]); printf("\n"); } return 0;}
0 0
- [HDU-5241] 大数乘法
- hdu 1042 阶乘--大数乘法
- HDU 1402 大数乘法 FFT
- hdu 1063 Exponentiation 大数乘法
- HDU 1063 Exponentiation(大数乘法)
- hdu 1402(FFT+大数乘法)
- HDU 1402 FFT 求 大数乘法
- HDU 1042 求N! ---大数乘法
- 大数乘法
- 大数乘法
- 大数乘法
- 大数乘法
- 大数乘法
- 大数乘法
- 大数乘法
- 大数乘法
- 大数乘法
- 大数乘法
- html5 audio 获得时长
- poj2251 Dungeon Master
- ZOJ 3715 (贪心)
- java.lang.IllegalArgumentException: node to traverse cannot be null!
- PHP设计模式系列(六):模板方法模式
- [HDU-5241] 大数乘法
- HDU
- DedeCMS V5.3系统安装教程
- gitbook安装及插件使用
- perl 打包成PAR包 类似JAR包
- vim知识点汇总
- vim命令
- 安卓弹出对话框和安装
- PDO随笔