zoukankan      html  css  js  c++  java
  • 高精度计算

    一. 利用字符串的一维数组方法逐位运算:

    高精度加法:

    思路很简单,通过数组储存每一位数,然后相加进位。

    #include <stdio.h>
    #include <string.h>
    
    int main() {
        char a[510] = { 0 }, b[510] = { 0 };
        int a1[510] = { 0 }, b1[510] = { 0 };
        int len_a, len_b;
        int i;
        scanf("%s%s", &a, &b);
        len_a = strlen(a); len_b = strlen(b);
    
        for (i = 0; i < len_a; i++) {
            a1[i] = a[len_a - i - 1] - '0';
        }
        for (i = 0; i < len_b; i++) {
            b1[i] = b[len_b - i - 1] - '0';
        }
        
        len_a = (len_a > len_b) ? len_a : len_b;
    
        for (i = 0; i <= len_a; i++) {
            a1[i] += b1[i];
            if (a1[i] >= 10) {
                a1[i] = a1[i] % 10;
                a1[i + 1]++;
            }
        }
    
        for (int j = len_a; j >= 0; j--) {
            if (j==len_a&&a1[j] == 0) continue;
            printf("%d", a1[j]);
        }
        
        return 0;
    }

    其中几个关键点:1.另外创建两个数组进行倒序存储,方便同位对其。

            2.用字符串接受数,便于比较长度,注意字符串转化为数组时,要使用 -'0' 的操作。

  • 相关阅读:
    运算符,可变不可变数据类型
    基本的数据类型
    Python_day1
    day2_操作系统
    git fetch 命令
    Git branch 命令
    tmux常用命令
    转载-struts中logic标签使用
    转载-SVN常用命令
    javascript判断图片加载完成的三种方法
  • 原文地址:https://www.cnblogs.com/porest/p/14150937.html
Copyright © 2011-2022 走看看