a-b(高精度)
我现在已经是才语言中的一员了,我在此献上今日的佳作——a-b(高精度),以下是我的程序及其注释,欢迎各位来观赏,耶!
程序:
#include<stdio.h>
#include<string.h>
char s1[1000];
int a[1000]={0},b[1000]={0},c[1000]={0};
int main()
{
int i,j,z,l1,l2,l,o;
freopen("hp-.in","r",stdin);
freopen("hp-.out","w",stdout);
scanf("%s",s1); --------------------------------------------//a
l1=strlen(s1);
for(i=0;i<=l1-1;i++) ------------------------------------- //把s1(被减数)转换成数字,并倒序存入a数组
a[l1-1-i]=s1[i]-'0';
scanf("%s",s1);
l2=strlen(s1);
for(i=0;i<=l2-1;i++) --------------------------------- //把s1(减数)转换成数字,并倒序存入b数组
b[l2-1-i]=s1[i]-'0';
if(l1==l2){
for(j=l1;j>=0;j--)
{
if(a[j]>b[j]) -----------------------------//a大
{
o=0;
break;
}
if(b[j]>a[j]) -----------------------------//b大
{
o=1;
break;
}
}
}
if(l1>l2||o==0) ---------------------------------------//a大时
{
l=l1;
for(i=0;i<l;i++)
{
if(a[i]<b[i])
{
a[i]=a[i]+10;
a[i+1]-=1;
}
c[i]=a[i]-b[i];
}
while(l>1&&c[l-1]==0) l--;----------------------------------- //舍去高位中无用的0
for(i=l-1;i>=0;i--) ------------------------------------------//输出
{
printf("%d",c[i]);
}
}
else
{
printf("-");
l=l2;
for(i=0;i<l;i++)
{
if(a[i]>b[i])
{
b[i]=b[i]+10;
b[i+1]-=1;
}
c[i]=b[i]-a[i];
}
while(l>1&&c[l-1]==0) l--; ------------------------------------//舍去高位中无用的0
for(i=l-1;i>=0;i--)------------------------------------------- //输出
{
printf("%d",c[i]);
}
}
return 0;
}
进过这一次的编写,我更加熟练的编写程序,我会向前更进一步!\(^o^)/O(∩_∩)O哈哈~( ^_^ )/~~拜拜
a-b(高精度)的更多相关文章
- CSharpGL(28)得到高精度可定制字形贴图的极简方法
CSharpGL(28)得到高精度可定制字形贴图的极简方法 回顾 以前我用SharpFont实现了解析TTF文件从而获取字形贴图的功能,并最终实现了用OpenGL渲染文字. 使用SharpFont,美 ...
- 递推+高精度 UVA 10497 Sweet Child Makes Trouble(可爱的孩子惹麻烦)
题目链接 题意: n个物品全部乱序排列(都不在原来的位置)的方案数. 思路: dp[i]表示i个物品都乱序排序的方案数,所以状态转移方程.考虑i-1个物品乱序,放入第i个物品一定要和i-1个的其中一个 ...
- [Template]高精度模板
重新写一下高精度模板(不要问我为什么) 自认为代码风格比较漂亮(雾 如果有更好的写法欢迎赐教 封装结构体big B是压位用的进制,W是每位长度 size表示长度,d[]就是保存的数字,倒着保存,从1开 ...
- Code[VS] 3123 高精度练习之超大整数乘法
FFT 做 高精度乘法 #include <bits/stdc++.h> ); struct complex { double a, b; inline complex( , ) { a ...
- Java 高精度数字
BigInteger // 高精度整数 BigDecimal //高精度小数 小数位数不受限制
- c++减法高精度算法
c++高精度算法,对于新手来说还是一大挑战,只要克服它,你就开启了编程的新篇章,算法. 我发的这个代码并不是很好,占用内存很多而且运行时间很长(不超过0.02秒),但是很好理解,很适合新手 高精算法的 ...
- c++加法高精度算法
c++高精度算法,对于新手来说还是一大挑战,只要克服它,你就开启了编程的新篇章,算法. 我发的这个代码并不是很好,占用内存很多而且运行时间很长(不超过1秒),但是很好理解,很适合新手 高精算法的本质就 ...
- [转]使用Stopwatch类实现高精度计时
对一段代码计时同查通常有三种方法.最简单就是用DateTime.Now来进行比较了,不过其精度只有3.3毫秒,可以通过DllImport导入QueryPerformanceFrequency和Quer ...
- .net平台下获取高精度时间类
原文:http://www.it118.org/specials/321869dd-98cb-431b-b6d2-82d973cd739d/d940a15c-0d36-4369-8de0-b07cf3 ...
- [vijos P1040] 高精度乘法
如果这次noip没考好,完全是因为从7月29日之后就没有再写过程序了.说起来,真是一个泪流满面的事实… 那这样一个弱智题练手恢复代码能力,竟然还花了我两个晚上(当然不是两整个晚上…) 第一天TLE了, ...
随机推荐
- ARM学习笔记11——GNU ARM汇编程序设计
GNU ARM汇编程序设计中,每行的语法格式如下: [<label>:] [<instruction | directive | pseudo-instruction>] @c ...
- Cocos2d-x java 通过jni调用c++的方法
前面博客说到,cocos2d-x c++界面层运行在一个GLThread线程里面,严格的说是运行在Cocos2dxGLSurfaceView(继承自GLSurfaceView) 里面.opengl的渲 ...
- ReentrantLock Condition 实现消费者生产者问题
import java.util.LinkedList; import java.util.Queue; import java.util.concurrent.ExecutorService; im ...
- linux IPC总结——管道
管道 管道是unix ipc的最古老形式,是一种在内存中的特殊文件,只能在具有公共祖先的进程之间使用(即父子进程,兄弟进程). 管道由pipe函数创建 #include <unistd.h> ...
- 宁波Uber优步司机奖励政策(2月1日~2月7日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- C#Stimulator项目>>>C/C++ DLL的生成和调用,Windows下的多线程
Windows下的多线程 http://blog.csdn.net/ganpengjin1/article/category/2541791 使用C/C++建立DLL,环境VS2013 新建Win32 ...
- CentOS 7下安装xampp和testlink
记录一下最近安装testlink的经历,供大伙儿参考,有问题可以留言讨论,这里就不截图了 先说下安装版本: CentOS-7.0-1406-x86_64-DVDxampp-linux-1.8.3-5- ...
- 20169210《Linux内核原理与分析》第九周作业
第一部分:实验 首先还是网易云课堂的学习,这次的课程是可执行程序的装载. 预处理.编译和链接: 可执行程序是怎么来的 以c语言代码为例的话,经过预处理,编译成汇编代码,再汇编成目标码再链接可执行文件. ...
- SQL语法集锦一:显示每个类别最新更新的数据
本文转载http://www.cnblogs.com/lxblog/archive/2012/09/28/2707504.html (1)显示每个类别最新更新的数据 在项目中经常遇到求每个类别最新显示 ...
- [ORACLE]数据库之间复制表
---------------------------------------------------------------------------- -------------ORACLE数据库管 ...