第28题
由键盘输入一个奇数 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<stdio.h>
int main()
{
long p,a,b,c,t,n;
int bl;
while(1)
{
printf(" 输入 p, 最后一位为 1 或 3 或 7 或 9:\n");
scanf("%ld",&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;
printf("%1ld",b);
t++;
if(___________⑦__________)
printf("\n");
c=_________⑧_________;a=________⑨______;n++;
}while(c>0);
printf("\nn=%ld\n".__________⑩_______);
}