任意两个数相加求和

问题描述

用C#编写一个程序,实现任意两个数相加(取值范围可以超出double类型),用字符串实现

解决方案

解决方案二:
现在有BigInteger还造轮子干什么...作业的话自己看书自己做,实在不会去google...
解决方案三:
窗体有2个textbox,分别是textbox1和textbox2,还有一个button1,以下是button事件的内容//代码没有判断文本框是否是数值,请读者自己判断//这是一个比较笨,也相对比较易懂的方法//应该还有其他方法的,暂时不写stringt1=this.textBox1.Text.Trim();stringt2=this.textBox2.Text.Trim();string[]s1;string[]s2;stringSumStr;s1=t1.Split(newChar[]{'.'});//用.来分隔s2=t2.Split(newchar[]{'.'});if(s1.Length>2||s2.Length>2){MessageBox.Show("您输入的数值有误");return;}if(s1.Length==2&&s2.Length!=2){SumStr=Convert.ToString(Convert.ToInt64(s1[0])+Convert.ToInt64(s2[0]))+"."+Convert.ToString(Convert.ToInt64(s1[1]));}elseif(s2.Length==2&&s1.Length!=2){SumStr=Convert.ToString(Convert.ToInt64(s1[0])+Convert.ToInt64(s2[0]))+"."+Convert.ToString(Convert.ToInt64(s2[1]));}elseif(s1.Length==1&&s2.Length==1){SumStr=Convert.ToString(Convert.ToInt64(s1[0])+Convert.ToInt64(s2[0]));}else{SumStr=Convert.ToString(Convert.ToInt64(s1[0])+Convert.ToInt64(s2[0]))+"."+Convert.ToString(Convert.ToInt64(s1[1])+Convert.ToInt64(s2[1]));}MessageBox.Show(SumStr);

解决方案四:
本人是个菜鸟,能完整的写一下吗还有结果输出在哪标签吗?
解决方案五:
看这个。有源码http://www.codeproject.com/KB/cs/biginteger.aspx
解决方案六:
引用1楼vrhero的回复:

现在有BigInteger还造轮子干什么...作业的话自己看书自己做,实在不会去google...

用这个BigInteger类型命名变量就行了
解决方案七:
但是楼主注意了BigInteger只是在.net4.0时新加入的,你要是没装vs2010的话估计是没用到的!特意跑来跟你说下!
解决方案八:
引用1楼vrhero的回复:

现在有BigInteger还造轮子干什么...作业的话自己看书自己做,实在不会去google...

+1

时间: 2024-09-30 12:44:38

任意两个数相加求和的相关文章

c语言-[C语言]求一个算法,输入N个数,输出所有其中任意M个数相加等于定值S的结果

问题描述 [C语言]求一个算法,输入N个数,输出所有其中任意M个数相加等于定值S的结果 如题,比如输入1,,2,10,5,7,8,9,11,输出其中任意几个数相加等于12的结果(不重复), 不自身相加. 1+2+9=12 10+2=12 7+5=12 解决方案 这题如果不考虑优化问题--轮询吧--总共有2的n次方种组合-学过排列组合的都知道

编程语言-c#实现两个相差一千位以内的整数相加,写出这样一个方法并测试两个相差一百位以上的两个数,输出结果。

问题描述 c#实现两个相差一千位以内的整数相加,写出这样一个方法并测试两个相差一百位以上的两个数,输出结果. (如:111111111111111111111111111110 + 8 ) 解决方案 如果是.NET 4.0(VS2010),不需要写什么方法,直接调用BigIntegerhttps://msdn.microsoft.com/zh-cn/library/system.numerics.biginteger.aspx 解决方案二: 2000位的整数也不在话下,加减乘除都能做.

c语言-实现b进制的加法,我是先把两个数转化为十进制,然后求和在转换为b进制,可是一直出现问题,调试

问题描述 实现b进制的加法,我是先把两个数转化为十进制,然后求和在转换为b进制,可是一直出现问题,调试 #include #include int main() { int a; char str1[40], str2[40]; while (scanf("%d%s%s", &a,str1,str2) != EOF) { int temp1 = 0, c1 = 1; int length1 = strlen(str1); printf("lenrht1=%dn&quo

C++ 将pData[]数组中任意个数相加最接近Length(6000)的一组一组输出到a[];

问题描述 C++ 将pData[]数组中任意个数相加最接近Length(6000)的一组一组输出到a[]; 如果 pData[Count]={4000,1700,1600,1400,1345,1200,1050,870,452,450,297,120,110,104,98,.....} int* OptimizeData(int *pData,int Count,int Length); //Count 总个数,Length固定长度(6000) { int *a=new int[Count];

[经典面试题][百度]数组A中任意两个相邻元素大小相差1,在其中查找某个数。

题目 数组A中任意两个相邻元素大小相差1,现给定这样的数组A和目标整数t,找出t在数组A中的位置.如数组:[1,2,3,4,3,4,5,6,5],找到4在数组中的位置. 思路 这道题目最差时间复杂度也是O(N),所以重点在于能不能找到一种尽可能减少比较次数的方法. 如数组:[1,2,3,4,3,4,5,6,5],找到4在数组中的位置.4和1比较,差为3,那么即使最好情况(递增或者递减),4也就是在a[3]的位置,可以跳过a[1]a[2].这样在特定数组(目标值和a[1]相差很大)的情况下或许可以

剑指offer之和为定值的两个数

题目描述: 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输入: 每个测试案例包括两行: 第一行包含一个整数n和k,n表示数组中的元素个数,k表示两数之和.其中1 <= n <= 10^6,k为int 第二行包含n个整数,每个数组均为int类型. 输出: 对应每个测试案例,输出两个数,小的先输出.如果找不到,则输出"-1 -1" 样例输入: 6 15 1 2 4 7 11 15 样例输出:

T-SQL 2 Tips: 1.计算任意两日期之间的&amp;amp;quot;周一&amp;amp;quot;到&amp;amp;quot;周日&amp;amp;quot;分别各有几个! 2.根据出生..

这两个小技巧,不写不知道,一写吓一跳!都是看似简单,实际做起来就懵,得仔细想一想,才能写对!凡是有日期运算的程序都要细心哦! 先说第二个: 2.根据出生日期精确计算年龄!  所谓计算精确年龄就是: 生日差一天也不能长一岁!  大家常用,间隔年数算作年龄! 如果需求要精确,如: 保险 之类的,就粗了!  当然还可引申为根据入职日期计算精确的司龄,算加薪之类的需求!  我起初认为很简单,当年也写了好几遍才写对!高手们也被我晃点了数次几近晕倒!  不信有当年 2002-11-27 16:16:26 贴

把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。

算法分析: 1316,显然1300是13的倍数,但16不是11的倍数,可以想到从1300上任意减去N个13的倍数其结果仍然是13的倍数,那么只要16加上这个减去的N个13的倍数其和是11的倍数,这两个数就解出来了,答案可能不只一个,但是我们只求一对解就可以了. 仔细观察不难发现:(16+13*3)+(1300-13*3)=1316,但是我们需要用代码实现: 复制代码 代码如下: <?php $n=1316; $i=0;//减去的第N个13,进行初始化为0 $y=16+13*$i;//1316分出

Two Sum:两数相加

[ 问题: ] Given an array of integers, find two numbers such that they add up to a specific target number. The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please no