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);
}
}