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了, ...
随机推荐
- Ubuntu的which、whereis、locate和find命令
which 只能寻找执行文件 ,并在PATH变量里面寻找. whereis 从linux文件数据库(/var/lib/slocate/slocate.db)寻找,所以有可能找到刚刚删除,或者没有发现新 ...
- tail head命令
显示1.txt的最后2行 tail -2 1.txt 显示1.txt的最后1行 tail -n 1 1.txt tail -1 1.txt 显示1.txt的最后10行 tail 1. ...
- hdoj 4738 Caocao's Bridges【双连通分量求桥】
Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- Apache Commons 工具类介绍及简单使用
转自:http://www.cnblogs.com/younggun/p/3247261.html Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.下 ...
- Android五大布局重新回顾
- Android开发之点九图的制作说明
总结: 左边的点代表垂直拉伸的区域, 上边的点代表水平拉伸的区域. 右边的点代表文字等的垂直可可显示区域. 下边的点代表文字等的水平可显示区域. 左上重合的区域就是拉伸区域. 右下重合的区域就是显示区 ...
- 学习PHP时的一些总结(二)
类中的构造方法和析构方法: 构造方法是对象创建完成后第一个被对象自动调用的方法.析构方法是对象在销毁之前最后一个被对象自动调用的方法. 如果没有显示的声明构造方法,类中都会默认存在一个没有参数列表并且 ...
- maven 学习1 -安装maven 并执行编译命令
一.maven 下载与安装(安装好jdk的前提下) 1.下载地址:http://maven.apache.org/download.cgi (选择最新的zip版本),下载完毕后解压 2.安装:系统p ...
- oracle数据库敏感操作前创建还原点
我们都知道,在vmware虚拟机中有一个拍摄快照的功能,我们可以把系统此时的状态保存下来,一方后面遇到不测事件,也好将系统还原,oracle中也有类似功能. 首先创建一张学生表: 向学生表中插入一条数 ...
- ListView simpleAdapter的基本使用
使用simpleAdapter的数据用一般都是HashMap构成的List,list的每一节对应ListView的每一行.HashMap的每个键 值数据映射到布局文件中对应id的组件上.因为系统没有对 ...