题库 信息学奥赛题库 题目列表 NOIP2006年第十二届普及组初赛完善程序:由键盘输入一...
填空题

NOIP2006年第十二届普及组初赛完善程序:由键盘输入一个奇数 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; 
 }

题目信息
完善程序 初赛 2006年
-
正确率
0
评论
273
点击