发布网友 发布时间:2023-03-25 23:12
共4个回答
热心网友 时间:2023-10-20 04:15
估计题目你没有看懂啊,程序其实不难,用字符串来做更简单追答大体思路就是这样
先看ab谁大,赋值带a1,b1中,a1是哪个大的
反序a1b1,这样各位在前,好计算,不用再管对位的问题
先计算个位,
接着计算中间位,考虑一下借位的问题,这样能计算到最高位
这里一个技巧,就是如果不赋值a1b1全部为零的话,可能差位会有随机数的干扰
最后处理最高位那些零的位
如10000-9999=1,那么最高位有4个零,所以lc的长度是要减去这些多出来的位
最后变char,反序
我只是按照思路写了一下,没有运行,我以前运行过,时间长了可能一些细节忘记了,你慢慢检查一下吧,呵呵
热心网友 时间:2023-10-20 04:15
意思就是把一个一维数组输出为一个整数 就想你那个例子 x={3, 5, 1, 6, 9, 4, 0, 2} 输出的时候合在一起35169402
很简单
int i = x[0],n = 0;追问那我要如何输入呢?
追答35169402%10=2
35169402/10=3516940
循环
3516940%10=0
3516940/10=351694
下面我不用多说了吧,动动脑筋最好了
热心网友 时间:2023-10-20 04:16
unsigned long 最大只能表示2^31 才10^9级别 题目给的整数是100位的 10^99次方级别的 根本存不下,所以要用数组存整数 然后模拟减法的过程热心网友 时间:2023-10-20 04:16
比如c[10]=a[10]-b[10]<0,则a[9]=a[9]-1;c[10]=a[10]-b[10]+10;类推追问int c[10],m;追答int c[10],m;
if(a[9]>=b[9])
{
for(m=9;m>=0;m--)
{
if(a[m]-b[m]=0;m--)
{
if(b[m]-a[m]<0)
{
b[m-1]=b[m-1]-1;
c[m]=b[m]-a[m]+10;
}
else
c[m]=b[m]-a[m];
}
printf("-");
for(m=0;m<10;m++)
{
printf("%d",c[m]);
}
}
这还有-号的问题,你看看有没有别的简化的方法。