一个用心写的题解

土间太平  •  5年前


这道题想通以后很简单。

15678505815673.png

我们设被除数是a,除数是b。

现在谁也不知道a是多少,b是多少,你问我我也不知道。那a,b都不知道这个题还做个鬼啊!

所以我们首先要算出a和b的值。

看这个竖式可以知道a除以b等于809余1,并且a是四位数,b是二位数,9b(最后一行)和9b+1(倒数第二行)是三位数(重要!)

所以我们可以编写一个暴力求值的循环,比如

for(b=10;b<=99;b++)
{
a=809*b+1;
if(a>=100 && a<=10000 && 9*b+1>100 && 9*b>100)
break;
}

放心吧要不掉多少时间的。如果你有疑虑,也可以先在其他程序里把a,b算出来。

在上面的代码中,我们保证了上述条件的成立(也就是二位数三位数什么的)。这个很重要,因为如果只满足a四位数b两位数的话我们一共有三组a,b可以满足a=809*b+1,这就不对了。

 

接下来都有了a,b,事情还会难吗?

自己动手试试吧。

 

以下是我的代码。

#include <iostream>
using namespace std;

int main(){
int a,b;
a=0;b=0;
for(b=10;b<=99;b++)
{
a=809*b+1;
if(a>=100&&a<=10000&&9*b+1>100&&9*b>100)
break;
}
cout<<b<<endl<<a<<endl<<8*b<<endl<<a-800*b<<endl<<9*b<<endl;
return 0;
}
 

我的代码很辣鸡对吧。别在意别在意。毕竟萌新嘛,人们说只有萌新跟萌新讲题才是最有用的。

 

——By 某萌新,王码题解第二篇。


评论:

管理员表示很赞!


[系统管理员]  •  5年前

9b(最后一行)和9b+1(倒数第二行)是三位数:(9*b)>99 &&  (9*b+1)<1000 这样更合理吧?


Jack  •  5年前

可以让人马上理解! 巨赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞赞!!!!!!!


⛴李恒旭⚔♆§  •  1年前

请先登录,才能进行评论