66.除式還原(1)
給定下列除式,其中包含5個7,其它打×的是任意數(shù)字,請加以還原。
× 7 × --------------商
--------------
除數(shù)------××| ×××××-------------被除數(shù)
×7 7
--------------
× 7 ×
× 7 ×
----------
× ×
× ×
----------
○
*題目分析與算法設(shè)計
首先分析題目,由除式本身盡可能多地推出已知條件。由除式本身書已知:
1、被除數(shù)的范圍是10000到99999,除數(shù)的范圍是10到99,且可以整除;
2、商為100到999之間,且十位數(shù)字為7;
3、商的第一位與除數(shù)的積為三位數(shù),且后兩位為77;
4、被除數(shù)的第三位一定為4;
5、 7乘以除數(shù)的積為一個三位數(shù),且第二位為7;
6、商的最后一位不能為0,且與除數(shù)的積為一個二位數(shù)。
由已知條件就可以采用窮舉的方法找出結(jié)果。
*程序與程序注釋
#include
void main()
{
long int i;
int j,l;
for(i=10000;i<=99999;i++) /*1. i:被除數(shù)*/
if(i%1000-i%100==400) /*4. 被除數(shù)的第三位一定為4*/
for(j=10;j<=99;j++) /*1. j: 余數(shù)*/
if(i%j==0&&(l=i/j)%100>=70&&l%100<80&&l%10!=0&&l>100&&l<=999)
/*1. 可以整除&& 2.商l在100到999之間且十位數(shù)字為7&&6.商的個數(shù)不能為0*/
if((j*(l%10))<100&&j*(l%10)>10) /*6. 商的個數(shù)與除數(shù)的積為二位數(shù)*/
if(j*7%100>=70&&j*7%100<80) /*5. 7乘以除數(shù)的積的第二位為7*/
if(j*(l/100)%100==77&&j*(l/100)>100)
/*商的第一位與除數(shù)的積的后兩位為77*/
printf("%ld/%ld=%d\n",i,j,l);
}
*運行結(jié)果
51463/53=971。
可以看作為下列算式:
9 7 1
-------------
5 3| 5 1 4 6 3
4 7 7
-------------
3 7 6
3 7 1
-----------
5 3
5 3
-----------
○
給定下列除式,其中包含5個7,其它打×的是任意數(shù)字,請加以還原。
× 7 × --------------商
--------------
除數(shù)------××| ×××××-------------被除數(shù)
×7 7
--------------
× 7 ×
× 7 ×
----------
× ×
× ×
----------
○
*題目分析與算法設(shè)計
首先分析題目,由除式本身盡可能多地推出已知條件。由除式本身書已知:
1、被除數(shù)的范圍是10000到99999,除數(shù)的范圍是10到99,且可以整除;
2、商為100到999之間,且十位數(shù)字為7;
3、商的第一位與除數(shù)的積為三位數(shù),且后兩位為77;
4、被除數(shù)的第三位一定為4;
5、 7乘以除數(shù)的積為一個三位數(shù),且第二位為7;
6、商的最后一位不能為0,且與除數(shù)的積為一個二位數(shù)。
由已知條件就可以采用窮舉的方法找出結(jié)果。
*程序與程序注釋
#include
void main()
{
long int i;
int j,l;
for(i=10000;i<=99999;i++) /*1. i:被除數(shù)*/
if(i%1000-i%100==400) /*4. 被除數(shù)的第三位一定為4*/
for(j=10;j<=99;j++) /*1. j: 余數(shù)*/
if(i%j==0&&(l=i/j)%100>=70&&l%100<80&&l%10!=0&&l>100&&l<=999)
/*1. 可以整除&& 2.商l在100到999之間且十位數(shù)字為7&&6.商的個數(shù)不能為0*/
if((j*(l%10))<100&&j*(l%10)>10) /*6. 商的個數(shù)與除數(shù)的積為二位數(shù)*/
if(j*7%100>=70&&j*7%100<80) /*5. 7乘以除數(shù)的積的第二位為7*/
if(j*(l/100)%100==77&&j*(l/100)>100)
/*商的第一位與除數(shù)的積的后兩位為77*/
printf("%ld/%ld=%d\n",i,j,l);
}
*運行結(jié)果
51463/53=971。
可以看作為下列算式:
9 7 1
-------------
5 3| 5 1 4 6 3
4 7 7
-------------
3 7 6
3 7 1
-----------
5 3
5 3
-----------
○