초대수 곱셈-----디지털 압축
12147 단어 압축
몇 개의 숫자를 하나의 그룹 저장 단원에 저장할 수 있다.곱셈뿐만 아니라 덧셈도 압위할 수 있다.
이번 코드는 9자리를 중압한다.
1 #include<iostream>
2 #include<cstring>
3 #include<cstdio>
4 #define LL __int64
5 #define N 15000
6 #define M 50005
7 #define MOD 1000000000 //
8 #define wei 9 //
9 using namespace std;
10
11 LL a[N],b[N],ans[N];
12 char c[M],d[M];
13 /************* ******************/
14 int StrToNum(char t[],LL tt[]) //
15 {
16 int len=0,t_len=strlen(t);
17 int i,cnt=1;
18 LL d=1,temp=0;
19 for(i=t_len-1;i>=0;i--)
20 {
21 temp+=(t[i]-'0')*d;
22 if(cnt==wei)
23 {
24 tt[len++]=temp;
25 temp=0;
26 cnt=d=1;
27 }
28 else
29 {
30 cnt++;
31 d=d*10;
32 }
33 }
34 tt[len++] = temp;
35 //for(i=0; i<len; i++)
36 // printf("%I64d ", tt[i]);
37 //cout<<endl;
38 return len;
39 }
40 /************************************/
41 /************ *************/
42 void mult(char c[],char d[])
43 {
44 int a_len,b_len,i,j;
45 LL flag,temp;
46 memset(a, 0, sizeof(a));
47 memset(b, 0, sizeof(b));
48 memset(ans, 0, sizeof(ans));
49 a_len= StrToNum(c, a);
50 b_len= StrToNum(d, b);
51 for(i=0;i<a_len;i++)
52 {
53 flag=0;
54 for(j=0;j<b_len;j++)
55 {
56
57 temp=ans[i+j]+a[i]*b[j]+flag;
58 // printf("%I64d
", temp);
59 ans[i+j]=temp%MOD;
60 flag=temp/MOD;
61 }
62 while(flag)
63 {
64 temp = ans[i+j]+ flag;
65 ans[i+j]=temp%MOD;
66 flag=temp/MOD;
67 }
68 }
69 /***********************************/
70 /*********** **************/
71 a_len=a_len+b_len+2;
72 while(!ans[a_len]&&a_len>0)a_len--;
73 if(a_len>=0) printf("%I64d", ans[a_len--]);
74 while(a_len>=0) printf("%09I64d", ans[a_len--]);
75 printf("
");
76 /********* ***************/
77 }
78 /**************************************/
79 /************ ***************/
80 int main()
81 {
82 while(scanf("%s%s",c,d)!=EOF)
83 {
84 mult(c,d);
85 }
86 return 0;
87 }
88 /**************************************/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Cognos 보고서 PDF 출력의 성능 튜닝 매개 변수 검증 결과보고서를 PDF로 출력할 때 Report Service 또는 Batch Report Service 매개변수에서 PDF 출력의 글꼴과 압축을 조정할 수 있는 Cognos Administration 매개변수가 있습니다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.