由键盘输入一个奇数 P (P<100,000,000),其个位数字不是 5,求一个整数 S,使 P×S =1111...1
(在给定的条件下,解 S 必存在)。要求在屏幕上依次输出以下结果:
(1)S 的全部数字。除最后一行外,每行输出 50 位数字。(2) 乘积的数字位数。 例 1:输入 p=13,
由于 13*8547=111111,则应输出(1)8547,(2)6 例 2:输入 p=147,则输出结果应为(1)
755857898715041572184429327286470143613
(2)42,即等式的右端有 42 个 1。
程序:
#include <iostream.h>
#include <iomanip.h>
void main()
{long p,a,b,c,t,n;
while (1)
{ cout <<"输入 p, 最后一位为 1 或 3 或 7 或 9:"<<endl;
cin >>p;
if ((p%2!=0)&&(p%5!=0)) // 如果输入的数符合要求,结束循环
⑥ ;
}
a=0; n=0;
while (a<p)
{a=a*10+1; n++; // 变量 a 存放部分右端项,n 为右端项的位数
}
t=0;
do
{b=a/p;
cout <<setw(1)<<b;
t++;
if ( ⑦ )
cout <<endl;
c= ⑧ ; a= ⑨ ; n++;
} while (c>0);
cout<<endl<<"n="<< ⑩ <<endl;
}