| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2589 人关注过本帖, 1 人收藏
标题:高精度加法
只看楼主 加入收藏
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:3 
用C写了一个~就是模仿竖式计算原理~

程序代码:
#include<stdio.h>
#include<string.h>
#define N 101

void Init(char a[]);
char* fun(char a[],char b[],char c[]);

int main()
{
    char a[N+1]={0};
    char b[N+1]={0};
    char c[N+2]={0};

    Init(a);
    Init(b);

    printf("%s\n",fun(a,b,c));

    return 0;
}

void Init(char a[])
{
    char c=0;
    int i=1;

    a[0]='0';

    while ((c=getchar())!='\n')
        a[i++]=c;
}

char* fun(char a[],char b[],char c[])
{
    char* pa=a+strlen(a)-1;
    char* pb=b+strlen(b)-1;
    char* pc=c+N-2;

    while (pa!=a||pb!=b||*pc)
    {

        *pc+=((*pa-'0')+(*pb-'0'));

        if (*pc>9)
        {
            *pc%=10;
            *(pc-1)+=1;
        }

        *pc+='0';
        --pc;

        if (pa!=a)
            --pa;

        if (pb!=b)
            --pb;
    }

    return pc+1;
}


[此贴子已经被作者于2017-4-7 20:06编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-04-07 17:50
快速回复:高精度加法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020554 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved