一个整数的每位数字都是1,至少多少位才能使这个数被1987整-查字典问答网
分类选择

来自蔡逢煌的问题

  一个整数的每位数字都是1,至少多少位才能使这个数被1987整除呢?告诉我用PASCAL编程,要怎么想?思路?1.设i=111112.i除以1987,如果余数为0,则表示成功,去到第4步。3.i=i*10+1,回到第2

  一个整数的每位数字都是1,至少多少位才能使这个数被1987整除呢?

  告诉我用PASCAL编程,要怎么想?思路?

  1.设i=11111

  2.i除以1987,如果余数为0,则表示成功,去到第4步。

  3.i=i*10+1,回到第2步。

  4.返i回。

  这样子做绝对是超时掉了,算不出来的

4回答
2020-05-27 18:06
我要回答
请先登录
胡刚华

  我不会这个PASCAL语言,所以只能给你思路:

  按照除法竖式的做法,依次算出每一步的商,和减完之后的结果。

  使用两个变量:这一位的商a,和这一次减完的结果b。

  另外来个用于数数的变量i

  首先赋值i=4,b=1111

  然后开始循环:

  {

  i自加1;

  b=b×10+1;//这一步相当于把原来的b末尾添一个1

  找到一个0~9之间的a,使得b-a×1987大于等于0小于1987 ;//即除法中的试商过程。编程的话,这步可以用循环来跑

  b=b-a ;//相当于除法竖式中减法的那一步

  }

  当b=0时循环结束。看当时的i是多少,就共有多少个1。

  附件的excle表格是这个过程的模拟:A列相当于上面的a,B列相当于上面的b

  这个附件中的A列数值,是我一位一位手动估算得到的:

  结果的商有328位,对应的被除数有332位。

2020-05-27 18:10:50
刘春颖

  1.设i=11111

  2.i除以1987,如果余数为0,则表示成功,去到第4步。

  3.i=i*10+1,回到第2步。

  4.返i回。

2020-05-27 18:12:58
龙应瑞

  用浪潮天梭

2020-05-27 18:14:35
辜智慧

  我觉得得用高精度,用普通类型一般存不下来,再用这种方法:

  1.设i=11111

  2.i除以1987,如果余数为0,则表示成功,去到第4步。

  3.i=i*10+1,回到第2步。

  4.返i回

2020-05-27 18:18:53

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •