17-25+57先算加法还是100以内加减法练习

428加上26乘以17减去9若想改变运算顺序,先算加减法,再算乘法,则算式是什么?
(428-26)×(17-9)=402×8=3216
为您推荐:
扫描下载二维码&&&&&&&&&&&&&
   第一篇博文有点小鸡冻。在哈工程寒假集训中第一次模拟中唯一一道对我有价值的题就是大数加法,随后的几次模拟中大数运算不断,可见这是我们必须掌握的技能,本人智商较低,先讲解下大数加法减法,乘除阶乘或者结合其他知识的大数运算日后定会奉上。
究竟为什么要用大数加法呢。我们来看下数据:
bool型为布尔型,占1个字节,取值0或1。
BOOL型为int型,一般认为占4个字节,取值TRUE/FALSE/ERROR。
sbyte型为有符号8位整数,占1个字节,取值范围在128~127之间。
bytet型为无符号16位整数,占2个字节,取值范围在0~255之间。
short型为有符号16位整数,占2个字节,取值范围在-32,768~32,767之间。
ushort型为无符号16位整数,占2个字节,取值范围在0~65,535之间。
int型为有符号32位整数,占4个字节,取值范围在-2,147,483,648~2,147,483,647之间。
uint型为无符号32位整数,占4个字节,取值范围在0~4,294,967,295之间。
long型为64位有符号整数,占8个字节,取值范围在9,223,372,036,854,775,808~9,223,372,036,854,775,807之间。
ulong型为64位无符号整数,占8个字节,取值范围在0~18,446,744,073,709,551,615之间。
float型为32位单精度实数,占4个字节,取值范围3.4E+10的负38次方~3.4E+10的38次方之间。
double型为64位实数,占8个字节,取值范围1.7E+10的负308次方~1.7E+10的正308次方。
& & & & 所以999+=?
& & & & & & & & &&                        大数加法
& & & &基本思想:数组要多长有多长啊,随便定义个a[1000000],不就OK啦!
& & & & & &我都能写出来,当然代码是非常简单了啦,我说下要注意的几个问题:
   1.& & &判断最后数组的长度
&   & 2. & & 去掉前导零
void Add(char s1[],char s2[]) //需要两个字符串参数&&无返回值
int num1[M],nm2[M];
len1=strlen(s1);
len2=strlen(s2);
for(i=len1-1,j=0;i&=0;i--)//num[0]保存的是低位
num1[j++]=s1[i]-'0';
for(i=len2-1,j=0;i&=0;i--)
num2[j++]=s2[i]-'0';
for(i=0;i&M;i++)
num1[i]+=num2[i];
if(num1[i]&9)
num1[i]-=10;
num1[i+1]++;
21   for(i=M;(i&=0)&&(num1[i]==0);i--)//找到第一个不是零的数
for(;i&=0;i--)
printf("%d",num1[i]);
printf("0\n")
&当然方法不止一种。如果说上面这个清晰的话,那下面这个应该是省了点内存。
1 void Add(char a[],char b[],char d[])
char c[10001];
int lena=strlen(a),lenb=strlen(b);
len=lena&lenb?lena:
c[0]='\0';
for(i=1;i&=i++)c[i]='0';
for(i=1;i&=i++)c[i]+=a[lena-i]-48;
for(i=1;i&=i++)c[i]+=b[lenb-i]-48;
for(i=0;i&=i++)
if(c[i]&57)
for(i=i&1;i--)
if(c[i]==48)len--;
else break;
for(i=0;i&=i++)
d[i]=c[len-i];
好吧,这个代码还有个好处就是让我记住了&0&和&9&的ASCII码是48和57。
& & & & & & & & & & & &               大数减法
   减法的算法也是从低位开始减,先要判断减数和被减数那一个位数长,减数位数长是正常减;被减数位数长,则被减数减减数,最后还要加上负号;两个位数长度相等时,最好比较那一个数字大,否则负号会处理的很繁琐;处理每一项时,如果前一位相减有错位,就先减上一位的错位,无则不减,再去判断是否能够减开被减数,如果减不开,就要借位后再去减,同时错位为1,否则置错位为0.
1 //d2 & d1,如果需要比较大小自己加一个不麻烦。
2 void dec(char *d1, char *d2, char *out)
int len_min = strlen(d1);
int len_max = strlen(d2);
int last_j = 0;
//最关键的错位
while(len_min & 0)
int dd1 = d1[len_min - 1] - '0';
int dd2 = d2[len_max - 1] - '0';
if (last_j) dd2 = dd2 - 1;
last_j = dd2 &= dd1 ? 0 : 1;
dd2 = dd2 &= dd1 ? dd2 : dd2 + 10;
out[len_max] = (dd2 - dd1) + '0';
len_max -- ;
len_min -- ;
while(len_max & 0)
int dd2 = (d2[len_max -1] - '0');
if (last_j) dd2 = dd2 - 1;
last_j = dd2 &= 0 ? 0 : 1;
dd2 = dd2 &= 0 ? dd2 : dd2 + 10;
out[len_max] = dd2 + '0';
len_max --;
if (last_j)
out[0] ='1';
out[0] ='0';
    哦了。就这么多了。大数乘法除法神马的敬请期待!
阅读(...) 评论()同时有加减法应该先算加法吗减法_百度知道
同时有加减法应该先算加法吗减法
我有更好的答案
应按从左向右的顺序依次计算。
其他类似问题
为您推荐:
加减法的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁217-40×3+108的计算结果是______,如果要求先算减法,再算乘法,最后算加法,算式变成______,计算结果_百度知道
217-40×3+108的计算结果是______,如果要求先算减法,再算乘法,最后算加法,算式变成______,计算结果
算式变成______,再算乘法,最后算加法217-40×3+108的计算结果是______,如果要求先算减法
我有更好的答案
205;(217-40)×3+108=177×3+108=531+108=639.故答案为217-40×3+108=217-120+108=97+108=205,(217-40)×3+108
其他类似问题
为您推荐:
减法的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁解方程里先算括号外面的行吗括号里面的加法去掉括号就要变成减法吗_百度知道
解方程里先算括号外面的行吗括号里面的加法去掉括号就要变成减法吗
急用急急急
今天一点30之前用,1点30后就都不采纳了
提问者采纳
例,减变加,例视情况而定,可以先算外面的:a-(b+c)=a-b-c,去括号时括号里面的运算符号不变,加变减,去括号时括号里面的运算符号要变号:a+(b+c)=a+b+c括号外面是减;括号外面是加
那括号如果去了括号里的加减法或者乘除变吗比如2x(x-10)=10解2x(x-10)÷2=10÷2后面是x-10=5还是x+10=5
提问者评价
来自团队:
其他类似问题
为您推荐:
解方程的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 20以内加减法练习题 的文章

 

随机推荐