【C语言高精度计算】

您所在的位置:网站首页 阶乘值c语言 【C语言高精度计算】

【C语言高精度计算】

2023-07-04 10:21| 来源: 网络整理| 查看: 265

  计算A/B的精确值,设A,B是以一般整数输入,计算结果精确到小数后20位(若不足20位,末尾不用补0)。

输入样例1:

   4 3

输出样例1:

  4/3=1.33333333333333333333

输入样例2:

  6 5

输出样例2:

  6/5=1.2

输入样例3:

  30 5

输出样例3:

  30/5=6.0

代码: #include int main() { int a, b, num[21];//num存小数部分 scanf("%d %d", &a, &b); printf("%d/%d=%d.", a, b, a / b); for (int i = 1; i 1)//从小数部分最后往前排除0 i--; for (int j = 1; j >str1;//输入乘数str1 //cin>>str2;//输入乘数str2 strcpy(str2,str1); lena=strlen(str1); lenb=strlen(str2); for(i=0;i=10) { b[i] = 0; b[i+1]++; } else { break; } } for(i=1;i1))//删除前导0 lenc--; for(i=lenc;i>=1;i--)//倒序输出 { cout= 10) { b[j - 1]=b[j-1]+1; b[j] = b[j]-10; } } } for (i = 0; i < N; i++) if (b[i] != 0) break; for (x = i; x < N; x++) printf("%d", b[x]); return 0; } 7-5 高精度计算-高精度求积 (100分)

  输入两个高精度正整数M和N(M和N均小于100位)。 求这两个高精度数的积。

输入样例:

  36 3

输出样例:

  108

代码: #include #include int main() { char s1[1500], s2[1500]; scanf("%s%s", s1, s2); int n = strlen(s1), m = strlen(s2); int a[n], b[m]; int i, j; for (i = 0, j = n - 1; i < n; i++, j--) { a[i] = s1[j] - '0'; } for (i = 0, j = m - 1; i < m; i++, j--) { b[i] = s2[j] - '0'; } int c[3000]; for (i = 0; i < 3000; i++) { c[i] = 0; } for (i = 0; i < n; i++) { for (j = 0; j < m; j++) { c[i + j] += a[i] * b[j]; } } for (i = 0; i < n + m; i++) { if (c[i] >= 10) { c[i + 1] += c[i] / 10; c[i] %= 10; } } for (j = 2999; j > 0; j--) { if (c[j] != 0) break; } for (i = j; i >= 0; i--) { printf("%d", c[i]); } printf("\n"); return 0; }

 

 

 

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3