A. 130*35简便运算
130*35
=130*70/2
=9100/2
=4550
或:
130*35
=(100+30)*35
=3500+1050
=4550
B. 1+2+3+4+5+6+……+100的简便运算
1+2+3+4+5+6+……+100
=(1+100)x100÷2
=101x100÷2
=101x50
=5050
简便运算1.补数凑整法
对于算式中接近整十、整百……的数,通过转化使其变成整十、整百……的数,加或减一个数的形式,可使计算简便。
例如:536-198=536_(200_2)=536_200+2=338
44x101=44x(100+1)=44x100+44=4444
2.分解法。
在某些乘除法算式中,可以把其中的某个数进行分解,使计算简便。
例如:25x1.25x32=25x1.25x(4x8)=(25x4)x(1.25x8)=100x10=1000
560÷35=560÷7÷5=80÷5=16
3.基准数法
若干个都接近某数的数相加,可以把某数作为基准数,然后把基准数与相加的个数相乘,再加上各数与基准数的差,就可以得到计算结果。
例如:81+85+82+78+79
=80x5+(1+5+2-2-1)
=400+5
=405
4.拆分法主要是拆开后的一些分数互相抵消,达到简化运算的目的,一般形如1/ax(a+1)的分数可以拆分成。1/a-1/a+1。
例如:1/1x2+1/2x3+1/3x4+1/4x5+1/5x6
=1_1/2+1/2-1/3+1/3-1/4+1/4-1/5+1/5-1/6
=1-1/6
=5/6
C. 44×78+23×44-44 简便计算
根据题意,这道题用到的简便计算方法是乘法交换律、乘法分配律和乘法结合律,原式=44*(78+23-1)=44*100=4400。
D. 在"1 2 3 4 5 6 7 8 9 10=100"中填上加减号,并不改变数字顺序,使式子成立
答案不唯一:
可编程穷举法求解,以下是全部解答:
123+4+5+67-89-10
123+4-5-6-7-8+9-10
123-45+6+7+8-9+10
123-4+5-6-7+8-9-10
123-4-5+6+7-8-9-10
12+34+56+7-8+9-10
12+3+45+67-8-9-10
12+3+45+6+7+8+9+10
12+3+4+5+67+8-9+10
12+3+4-5-6-7+89+10
12+3-4-5+67+8+9+10
12-3+4-5+6+7+89-10
12-3-4-5-6+7+89+10
1+234-56-78+9-10
1+23+4+56+7+8-9+10
1+23-4-5+6+78-9+10
1+2+34+5+67-8+9-10
1+2+3+4+56+7+8+9+10
1+2+3+4+5+6+78-9+10
1+2+3-4-5+6+78+9+10
1+2-3+4+5-6+78+9+10
1-2+3+45-6+78-9-10
1-2-34+56+78-9+10
1-2-3-4+5+6+78+9+10
如果允许在1前添加符号,另外还有如下解
-123-4-5-678+910
-12+34+5-6+78-9+10
-12+34-5+6+78+9-10
-12+3+4+5-6+7+89+10
-1+234-56-78-9+10
-1+23+4+56+7-8+9+10
-1+2+34+5+67-8-9+10
-1+2-34+56+78+9-10
-1+2-3+4-5+6+78+9+10
-1-234-567-8+910
-1-23-4+56-7+89-10
-1-2+34-5+67+8+9-10
-1-2+3+4+5-6+78+9+10
c语言源代码如下:
#include <stdio.h>
#include <string.h>
void calsign(long n,char *a)
{
int i;
for (i=9;i>=0;i--)
{
*(a+i)=n%3+'0';
n=n/3;
}
*(a+10)='\0';
}
void inssign(char *a,char *b)
{
int i,j;
for (i=9;i>=0;i--)
if (*(b+i)!='0')
{
for (j=24;j>i;j--)
*(a+j)=*(a+j-1);
*(a+j)=(*(b+i)=='1')?'+':'-';
}
}
int calnum(char *a)
{
long x=-1,sum=0;
int sign=1;
for (;*a!='\0';a++)
{
if (*a=='+'||*a=='-')
{
if (x!=-1) sum+=x*sign;
sign=(*a=='+')?1:-1;
x=-1;
}
else if (x==-1) x=*a-48;
else x=x*10+*a-48;
}
sum+=x*sign;
return sum;
}
void main()
{
long n;
char sign[11],o[12]="12345678910",s[25];
for (n=0;n<59049;n++)
{
strcpy(s,o);
calsign(n,sign);
inssign(s,sign);
calnum(s);
if (calnum(s)==100) printf("%s\ ",s);
}
}