}
15、输入两个正整数m和n,求其最大公约数和最小公倍数。
#include
usingnamespacestd;
voidmain()
{intp,r,n,m,t;
cout<<"pleaseentertwopositiveintegernumbersn,m:
";
cin>>n>>m;
p=n*m;//先将n和m的乘积保存在p中,以便求最小公倍数时用
while(m!
=0)//求n和m的最大公约数
{r=n%m;n=m;m=r;}
cout<<"HCF="<cout<<"LCD="<
}
16、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
#include
usingnamespacestd;
voidmain()
{charc;
intletters=0,space=0,digit=0,other=0;
cout<<"enteroneline:
:
"<while((c=getchar())!
='\n')
{if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letters++;
elseif(c=='')
space++;
elseif(c>='0'&&c<='9')
digit++;
else
other++;
}
cout<<"letter:
"<"<"<"<}
17、求sn=a+aa+aaa+……+a…a之值,其中a是一个数字。
例如2+22+222+2222+22222(此时n=5),n由键盘输入。
#include
usingnamespacestd;
voidmain()
{inta,n,i=1,sn=0,tn=0;
cout<<"a,n=:
";
cin>>a>>n;
while(i<=n)
{tn=tn+a;//赋值后的tn为i个a组成数的值
sn=sn+tn;//赋值后的sn为多项式前i项之和
a=a*10;//也可用tn=tn*10;
++i;
}
cout<<"a+aa+aaa+...="<}
法二:
#include
voidmain()
{inta,n,i,t=0,sum=0;
cout<<"Entera,n:
";
cin>>a>>n;
for(i=1;i<=n;i++)
{t=t*10+a;
sum=sum+t;
}
cout<<"sum="<}
18、求
(即求1!
+2!
+3!
+……+20!
)。
法一(单重循环)
#include
usingnamespacestd;
voidmain()
{floats=0,t=1;
intn;
for(n=1;n<=20;n++)
{
t=t*n;//求n!
s=s+t;//将各项累加
}
cout<<"1!
+2!
+...+20!
="<
}
法二(双重循环)
#include
voidmain(){
intn,m,t,sum=0;
for(n=1;n<=5;n++)
{t=1;
for(m=1;m<=n;m++)t=t*m;
sum=sum+t;
}
cout<<"sum="<}
19、输出100——999中的所有“水仙花数”。
#include
usingnamespacestd;
voidmain()
{inti,j,k,n;
cout<<"narcissusnumbersare:
"<for(n=100;n<1000;n++)
{i=n/100;
j=n/10-i*10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
cout<}
cout<}
20、一个数如果恰好等于它的因子之和,这个数就称为“完数”。
如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。
编程找出1000之内的所有完数。
并按下面格式输出其因子:
6,isfactorsare1,2,3
解:
法一:
#include
usingnamespacestd;
voidmain()
{constintm=1000;//定义寻找范围
intk1,k2,k3,k4,k5,k6,k7,k8,k9,k10;
inti,a,n,s;
for(a=2;a<=m;a++)//a是2~1000之间的整数,检查它是否为完数
{n=0;//n用来累计a的因子的个数
s=a;//s用来存放尚未求出的因子之和,开始时等于a
for(i=1;iif(a%i==0)//如果i是a的因子
{n++;//n加1,表示新找到一个因子
s=s-i;//s减去已找到的因子,s的新值是尚未求出的因子之和
switch(n)//将找到的因子赋给k1,...,k10
{case1:
k1=i;break;//找出的笫1个因子赋给k1
case2:
k2=i;break;//找出的笫2个因子赋给k2
case3:
k3=i;break;//找出的笫3个因子赋给k3
case4:
k4=i;break;//找出的笫4个因子赋给k4
case5:
k5=i;break;//找出的笫5个因子赋给k5
case6:
k6=i;break;//找出的笫6个因子赋给k6
case7: