文档库 最新最全的文档下载
当前位置:文档库 › c++程序改错题6

c++程序改错题6

程序改错题
第 11 题答案:55
一个盒子中放由50个球,其中15个红的,19个白的,16个黑的,从中任取12个球(每种球到最少取一个),球共有多少种不同的颜色搭配。
#include
class ball
{
private:
int i,j,k,count,red,white,black;
public:
ball(int redx,int whitex,int blackx){count=0;red=redx;white=whitex;black=blackx;}
int calculate();
};
int ball::calculate()
{
for (i=1;i<=red;i++)
for (j=1;j<=white;j++)
for(k=1;kif ((i+j+k)<=12)
cout<<++count<<" "<return count;
}
void main()
{
ball ob;
cout<}

第 12 题答案:3628800
编写一个程序,采用一个类求n!,并输出10!的值。
#include
class factorial
{
int n,mul;
public:
factorial(int m){n=m;mul=0;}
void calculate();
void show(){
calculate();
cout<}
};
void factorial::calculate()
{
int i=n;
while(i>1) mul=mul*i;
}
void main()
{
factorial ob(10);
ob.show();
}


第 13 题答案:14
求整数4998889因子个数的程序(不包括1和自身)。
#include
class factorial
{
int n,max;
public:
factorial(int m){n=m;max=1;}
void solution()
{
int i;
for(i=1;iif (n/i==0) max++;

}
void show() {
solution();
cout<<"factorial count= "<}
};
void main()
{
factorial ob(4998889);
ob.show();
}

第 14 题答案:40585
编写一程序,找出一切小于50000的最大整数,要求此数各位上的数字的阶乘相加后等于此数。
#include
class number
{
private:
int d[5],f[10];
int i;
public:
number()
{
int mul=0;
for(i=0;i<4;i++) d[i]=0;
for(i=0;i<10;i++)
{
if (i==0)
f[i]=mul;
else
{
mul=mul*i;f[i]=mul;
}
}
}
void factorial()
{
int x,j,flag;
long sum;
for(i=0;i<50000;i++)
{
x=i;
d[4]=x/10000;
x=x-d[4]*10000;
d[3]=x/1000;
x=x-d[3]*1000;
d[2]=x/100;
x=x-d[2]*100;
d[1]=x/10;
d[0]=x%10;
sum=1;flag=0;
for(j=4;j>0;j--)
if ((d[j]!=0)||(flag==0)) {sum=sum+f[d[j]];flag=1;}
if (i==sum) cout<}
}
};
void main()
{
number ob;
ob.factorial();
}


第 15 题答案:3
求方程3x-5y=1在条件|x|<100且|y|<40下的所有整数解的|x|+|y|的最小值。
#include
#include
void main()
{
int x,y,absxy=0;
for(x=-99;x<100;x++)
for(y=-39;y<40;y++)
if((3*x-5*y==1)&&(absxy>abs(x+y))) absxy=abs(x+y);
cout<}


第 16 题答案:1999
求出[500,2000]内所有既不能被5整除也不能被7的整数中的最大值。
#include
#include
class addition
{
long i,a,b,c,d,sum,count,abs_sub,max,min;
public:
addition(long a1,long b1,long c1,long d1){
a=a1;b=b1;c=c1;d=d1;}
void solution(){
max=b;
for(i=a;i<=b;i++)
if(i%c!=0&&i%d

!=0){
if(i}
}
void add_max()//求最大值
{
cout<<"The max is:"<
}
};
void main()
{
addition obj(500,2000,5,7);
obj.add_max();
}



第 28 题答案:3267
设有十进制数字a,b,c,d,e,且a不等于b,b不等于c,c不等于d,求满足下列式子:abcd*e=dcba 的所有abcd数的和。
#include
#include
void main()
{
int a,b,c,e,d,max=0,x,y,z,min=9999,sum,count=0;
for(a=0;a<=9;a++)
for(b=0;b<=9;a++)
for(c=0;c<=9;c++)
for(d=0;d<=9;d++)
for(e=0;e<=9;e++)
{
x=a*1000+b*100+c*10+d;
y=d*1000+c*100+b*10+a;
z=x*e;
if((z==y)&&(a!=b)&&(b!=c)&&(c!=d)) {
sum=sum+x;
}
}
cout<<"sum="<}



第 29 题答案:362
编写一个程序,求数30240和62280共同拥有的因子 (不包括1)中最大与最小因子之和。
#include
#include
class simple
{
int x,y,count,sum,max,min;
public:
simple(int fenzi,int fenmu){x=fenzi;y=fenmu;count=0;}
void solution(){
int i,n;
sum=0;max=0;min=0;
if (x>y)
n=y;
else
n=x;
for(i=2;i<=n;i++)
if (x%i!=0&&y%i!=0)
{
if(maxif(min>i) min=i;
}
}
void show_abs_add(){cout<<"max+min="<};
void main()
{
simple ob(30240,62280);
ob.solution();
ob.show_abs_add();
}



第 87 题答案:1073741824
编写计算8的10次幂的递归函数getpower(int x, int y ),并在主程序中实现输入输出。
#include
class power
{
private:
int num, power1;
public:
power(int x,int y){num=x;power1=y;}
int getpower(int x,int y);
void show(){cout<<"result is:"<};
int power::getpower(int x, int y)
{ if(y==1)
return x;
else
return x*getpower(x, y);
}
void main( )
{
power ob(8,10);
ob.show();
}

第 88 题答案:8
下面的程序是求下列分数序列的和,当和大于2.3时结束,输出该序列的项数。
1/2, 3/2, 5/3, 8/5, 13/8, 21/13, ……

#include
void main()
{
int i=1,m=1,n=2,k,count=0;
double s=0;
do
{
s=s+1/m;
k=n;m=n;n=k+m;count++;
}while(s<2.3);
cout <}


第 89 题答案:24
下面的程序是求出1~500之间的完全数。所谓完全数是指这样的数,该数恰好等于它的因子之和。
#include
void main()
{
int i,a,m;;
for(a=1;a<=50;a++)
{
for(m=0,i=1;iif(!(a/i)) m+=i;
if (m==a) cout<}
}

第 90 题答案:658655232
编程实现将整数x=643218向左循环移n=10位。假设用4个字节存放一个整数。
#include
class circle
{
private:
unsigned int x,z;
int n;
public:
circle(int a,int k){x=a;n=k;}
void leftcircle();
void show(){leftcircle();cout<<"Results: "<};

void circle::leftcircle( )
{
int y;
y=x>>(31-n);
z=y<


z=y||z;
}
void main()
{
circle ob(643218,10);
ob.show();
}


第 91 题答案:148257
求出[1000,100000]内所有能同时被17和19整除的整数之和。
#include
#include
class addition
{
long i,a,b,c,d,sum,count,abs_sub,max,min;
public:
addition(long a1,long b1,long c1,long d1){
a=a1;b=b1;c=c1;d=d1;}
void solution(){
for(i=a;i<=b;i++)
if((i%c==0)&(i%d==0)){
sum=sum+i;
}
}
void add_sum()//求整数和
{
cout<<"sum is:"<}
};
void main()
{
addition obj(1000,10000,17,19);
obj.solution();
obj.add_sum();
}


第 92 题答案: 8398
求出[1000,100000]内所有能同时被17和19整除的整数的最大值与最小值差的绝对值。
#include
class addition
{
long i,a,b,c,d,sum,count,abs_sub,max,min;
public:
addition(long a1,long b1,long c1,long d1){
a=a1;b=b1;c=c1;d=d1;}
void solution(){
max=0;min=a;

for(i=a;i<=b;i++)
if((i%c==0)&&(i%d==0)){
if(iif(i>max) max=i;
}
}
void sub_abs()//求绝对值
{
cout<<"The sub absolution is:"<}
};
void main()
{
addition obj(1000,10000,17,19);
obj.solution();
obj.sub_abs();
}


第 93 题答案:589995
求出[1000,10000]内所有能被147和197中的一个且只有一个数整除的整数之和。
#include
#include
class addition
{
long i,a,b,c,d,sum,count,abs_sub,max,min;
public:
addition(long a1,long b1,long c1,long d1){
a=a1;b=b1;c=c1;d=d1;}
void solution(){
for(i=a;i<=b;i++)
if((i%c==0&&i%d!=0)||(i%c!=0&&i%d==0)){
sum=sum+i;
}
}
void add_sum()//求整数和
{
cout<<"sum is:"<}
};
void main()
{
addition obj(1000,10000,147,197);
obj.solution();
obj.add_sum();
}



第 94 题答案:1029
求出[500,2000]内所有既不能被5整除也不能被7的整数的个数。
#include
#include
class addition
{
long i,a,b,c,d,sum,count,abs_sub,max,min;
public:
addition(long a1,long b1,long c1,long d1){
a=a1;b=b1;c=c1;d=d1;}
void solution(){
for(i=a;i<=b;i++)
if(i%c!=0||i%d!=0){
count++;
}
}
void add_number()//求个数
{
cout<<"The number is:"<}
};
void main()
{
addition obj(500,2000,5,7);
obj.solution();
obj.add_number();
}



第 175 题答案:3000
个位数为6,且能被3整除的五位数共有多少个(最高位非0)?
#include
class numberdivide3
{
private:
int i,m;
public:
numberdivide3(){
i=0;m=10000;
}
int solution();
void show(){ cout<<"number:"<};
int numberdivide3::solution()
{
while(m<100000)
{
if (m%3*3==m) i++;
m+=10;
}
return i;
}
void main()
{
numberdivide3 ob;
ob.show();
}

第 176 题答案:589
互为反序的两个自然数的积是580165,这两个互为反序的自然数中最小的是多

少?
#include
class eachreverse
{
private:
int i,j,k,n;
public:
eachreverse(int m){n=m;}
void calculate();
};
void eachreverse::calculate()
{
for(i=0;i<=9;i++)
for(j=0;j<=9;j++)
for(k=1;k<=9;k++)
if((i*100+k*10+ j)*( j*100+ i*10+ k) =n) cout<}
void main()
{
eachreverse ob(580165);
ob.calculate();
}

第 177 题答案:1966
有一个年份数,它与由它的数字倒排所成的数的和为8657,已知它的最后两位数字相等且年份的最高位不为0,求该年份。
#include
void main()
{
int i,j,k;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
for(k=0;k<10;k++)
if(i*1000+k*100+j*10+k+k*1000+k*100+j*10+i=8657) cout<}


第 178 题答案:73
在下述除法游戏中,每个字母唯一地代表一个十进制数字(每个字母都不为0)
AHHAAH/JOKE=HA
试求出字母HA代表的十进制数
#include
void main()
{
int a,h,j,i,k,e,y;
for(j=0;j<10;j++)
for(i=0;i<10;i++)
for(k=0;k<10;k++)
for(e=0;e<10;e++)
{
y=j*1000+i*100+k*10+e;
for(a=0;a<10;a++)
for(h=0;h<10;h++)
if(a*100000+h*10000+a*1000+h *100+a*10+h==y*(h*10+a))
cout<< a << h<}
}


第 179 题答案:3
求方程9x+4y=1000的所有正整数解的|x-y|的最小值。
#include
void main()
{
int x,y,absxy=1;
for(x=1;x<1000;x++)
for(y=1;y<1000;y++)
if((9*x+4*y==1000)&&(absxy>abs(x-y))) absxy=abs(x-y);
cout<}


第 180 题答案:8967
求出[1000,10000]内所有能被147和197中的一个且只有一个数整除的整数中最大值与最小值之差。
#include
#include
class addition
{
long i,a,b,c,d,sum,count,abs_sub,max,min;
public:
addition(long a1,long b1,long c1,long d1){
a=a1;b=b1;c=c1;d=d1;}
void solution(){
max=0;min=a;
for(i=a;i<=b;i++)
if((i%c!=0&&i%d!=0)||(i%c==0&&i%d==0)){
if(iif(i>max) max=i;
}
}

void sub_abs()//求绝对值
{
cout<<"The sub absolution is:"<}
};
void main()
{
addition obj(1000,10000,147,197);
obj.solution();
obj.sub_abs();
}



第 181 题答案:16887
求满足条件A*B=67532的所有自然数对A、B对应的A+B的最小值。
#include
class nature
{
int m,add_min,add_max,ab_min,ab_max,count;
public:
nature(int m1){m=m1;}
void solution()
{
int a,b,add;
add_min=m;add_max=0;
ab_min=m;ab_max=0;
count=0;
for(a=1;a<=m;a++)
for(b=a+1;a<=m;b++)
{ add=a+b;
if(a*b==m){
count++;
if(addadd_min=add;
}
}
}
}
void disp_add_min()
{
cout<<"The a+b min value is:"<}
};
void main()
{
nature obj(67532);
obj.solution();
obj.disp_add_min();
}



第 194 题答案:110022
求个位数为6,且能被3整除的五位数(最高位非0)中最

大数加上最小数的值。
#include
class numberdivide3
{
private:
long i,m,sum,max,min;
public:
numberdivide3(long m1){
i=0;m=m1;
}
void solution();
void show_abs_add(){ cout<<"max+min="<};
void numberdivide3::solution()
{
max=0;min=0;
while(m<100000)
{
if (m%3*3==m)
{
if(maxif(min>i) min=i;
}
m+=10;
}
}
void main()
{
numberdivide3 ob(10006);
ob.show_abs_add();
}



第 195 题答案:360
编写一个程序,求数30240和62280共同拥有的因子 (不包括1) 中的最大值。
#include
#include
class simple
{
int x,y,count,sum,max,min;
public:
simple(int fenzi,int fenmu){x=fenzi;y=fenmu;count=0;}
void solution(){
int i,n;
sum=0;max=0;min=30240;
if (xn=y;
else
n=x;
for(i=2;i<=n;i++)
if (x%i==0&y%i==0)
{
count++;
sum=sum+i;
if(maxif(min>i) min=i;
}
}
void show_max(){cout<<"max="<};
void main()
{
simple ob(30240,62280);
ob.solution();
ob.show_max();
}



第 252 题答案:1105
求满足条件的四位数ABCD,它是17的倍数,且第3位数加上第2位数等于第4位数(即A=B+C),请将满足条件的第一个数填到答案中
#include
void main()
{
int a,b,c,i,numofline=-1;
for(i=1000;i<10000;i++)
{
a=i/1000;
b=(i%1000-i&100)/100;
c=(i%100-i%10)/10;
if ((i/17==0)&(a==b+c)){
cout<}
}
}

第 253 题答案:2178
设有十进制数字a,b,c,d,e,且a不等于b,b不等于c,c不等于d,求满足下列式子:abcd*e=dcba 的最大的abcd。设有十进制数字a,b,c,d,e,求满足下列式子:abcd*e=dcba 的最大的abcd。
#include
void main()
{
int a,b,c,e,d,max=0,x,y,z;
for(a=0;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
for(d=0;d<=9;d++)
for(e=0;e<=9;e++)
{
x=a*1000+b*100+c*10+d;
y=d*1000+ b*100+ c*10+a;
z=x*e;
if((z=y)&&(max>x)&&(a!=b)&&(b!=c)&&(c!=d)) max=x;
}
cout<<"max="<}



第 254 题答案:357955
编写一程序,求数列1,-3!,5!,-7!,…,(-1)n-1(2n-1)!前n=5项的和。n的值由键盘输入。
#include
class sum
{
private:
int sign,n;
long sum1;
public:
sum(){sign=1;sum1=0;
cout<<"please input value of n:";cin>>n;}
long add();
void show(){cout<<"sum="<};
long sum::add()
{
int i,j;
long fac;
for(i=1;i<=2*n-1;i=i++)
{
fac=1;
for(j=1;j<=i;j++) fac=fac*j;
sum1=sum1+fac;
sign=-sign;
}
return sum1;
}
void main()
{
sum ob;
ob.show();
}

第 255 题答案:23
编写一个程序,求数30240和62280共同拥有的因子个数(不包括1)。
#include
class simple
{
int x,y,count;
public:
simple(int fenzi,int fenmu){x=fenzi;y=fenmu;count=1;}
void solution(){
int i,n;
if (x>y)
n=y;
else


n=x;
for(i=1;i<=n;i++)
if (x/i==0&y/i==0) count++;
}
void show(){
solution();
cout<<"factorial number = "<}
};
void main()
{
simple ob(30240,62280);
ob.show();
}

第 256 题答案:30
甲乙两个城市之间,有一条999公里长的公路,有位汽车司机开车从甲城到乙城,他注意到有的里程碑上所写的数仅用了两个不同数字,如099,仅用了0和9。请问具有这种特征的里程碑共有多少个?
#include
void main()
{
int i,j,count;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
{
if(i*100+i*10+j+j*100+j*10+i==999) count++;
if(i*100+j*10+i+j*100+i*10+j==999) count++;
}
cout<}

第 257 题答案:4
求方程8372*x^2+-33488x=1850212在范围[-1000,+1000]之间的整数解,请输出解的和的绝对值。
#include
class equation
{
long a,b,c,d,e,x,xs[3],solution_count;
public:
equation(long a1,long b1,long c1,long d1,long e1){
a=a1;b=b1;c=c1;d=d1;e=e1;}
void solution(){
solution_count=0;
for(x=d;x<=e;x++)
if(a*x*x+b*x==c) xs[++solution_count]=x;
}
void solution_add_abs()//和的绝对值
{
switch(solution_count)
{
case 1:
cout<<"solution add abs is:"<case 2:cout<<"solution add abs is:"<default :cout<<"Not solution!"<}
}
};
void main()
{
equation obj(8372,-33488,1850212,-1000,+1000);
obj.solution();
obj.solution_add_abs();
}



第 258 题答案:39390
将小于2000且能被4和6中至少一个数整除的所有整数按从小到大顺序排列后,求最后的20个数之和。
#include
class add_sum
{
int x,j,m,n,i,k,sum;
public:
add_sum(int j1,int m1,int k1,int n1){j=j1;m=m1;k=k1,n=n1;}
void back_sum()
{
i=0;sum=0;x=0;
while(i0)
{ x=x+1;
if (x%4==0||x%6==0) {
sum=sum+x;
i=i+1;}
}
if(x>=0&&i==n) cout<<"The sum is:"<}
};
void main()
{
add_sum obj(2000,4,6,20);
obj.back_sum();
}



第 259 题答案:20465
将大于1000且能被3和5中至少一个数整除的所有整数按从小到大顺序排列后,求最前面的20个数之和。
#include
class add_sum
{
int x,j,m,n,i,k,sum;
public:
add_sum(int j1,int m1,int k1,int n1){j=j1;m=m1;k=k1,n=n1;}
void pre_sum()
{
i=0; x=j;
while(ij)
{ x=x+1;
if (x%m==0||x%k==0) {
sum=sum+x;
i=i+1;}
}
if(x>=j&&i=n) cout<<"The sum is:"<}
};
void main()
{
add_sum obj(1000,3,5,20);
obj.pre_sum();
}



第 260 题答案:1177
设某四位数的各位数字的平方各等于100,求这些四位数中最小值。
#include
#include
void main()
{
int i,j,k,h,x,sum=0,count=0,max=9999,min=0;
for (i=1;i<100;i++)
for (j=1;j<100;j++)
for (k=1;k<100;k++)
for (h=1;h<100;h++)
{
x=i*1000+j*100+k*10+h;

if (i*i+j*j+k*k+h*h==100)
{
if(min}
cout<<"The min is:"<}



第 265 题答案:1089
设有十进制数字a,b,c,d,e,且a不等于b,b不等于c,c不等于d,求满足下列式子:abcd*e=dcba 的最大和最小的abcd之差。
#include
void main()
{
int a,b,c,e,d,max=9999,x,y,z,min=0,sum=0,count=0;
for(a=0;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
for(d=0;d<=9;d++)
for(e=0;e<=9;e++)
{
x=a*1000+b*100+c*10+d;
y=d*1000+c*100+b*10+a;
z=x*e;
if((z==y)&&(a!=b)&&(b!=c)&&(c!=d)) {
if(maxif(min>z) min=x;
}
}
cout<<"max-min="<}



第 266 题答案:2178308
数列1,1,2,3,5,8,13,21,……是著名的菲波那奇数列,求前30项的和。
#include
class several
{
private:
long a,b,sum10,sum20;
int n;
public:
long severalsolution(int m);
long sum(int m);
void show_sum30(){cout<<"sum30="<};
long several::severalsolution(int m)
{
long item;
int i;
for(i=1;i{
if(i==1||i==2) {a=1;b=1; }
else
{ item=a+b;a=b;b=item;}
}
return item;
}
long several::sum(int m)
{
int i,temp=0;
for(i=1;i<=m;i++)
temp=temp+severalsolution(i);
return temp;
}
void main()
{
several ob;
ob.show_sum30();
}



第 267 题答案:21
数列1,1,2,3,5,8,13,21,……是著名的菲波那奇数列,当求和到多少项时,和大于20000。
#include
class several
{
private:
long a,b,sum10,sum20;
int n;
public:
long severalsolution(int m);
long sum(int m);
void show_sumn(){
n=1;
while(sum(n)<=20000) n++;
cout<<"sum_n="<}
};
long several::severalsolution(int m)
{
long item;
int i;
for(i=1;i<=m;i++)
{
if(i==1||i==2) {a=1;b=1;item=1;}
else
{ item=a+b;a=b;b=item;}
}
return item;
}
long several::sum(int m)
{
int i,temp;
for(i=1;itemp=temp+severalsolution(i);
return temp;
}
void main()
{
several ob;
ob.show_sumn();
}



第 329 题答案:41616
在主程序中提示输入整数n,编写函数用递归的方法求1+2+3…+288的值。
#include
class add_sum
{
private:
int n;
public:
add_sum(int m){n=m;}
int add(int m);
void show() {cout<<"累加和是:"<};
int add_sum::add(int m)
{
int temp;
if(m==1)
temp=1;
else
temp=m;
return temp;
}
void main( )
{
int n;
cout<<"请输入一个整数:";
cin>>n;
add_sum ob;
ob.show();
}



第 330 题答案:11
计算n个n相乘,当n为何数时,积溢出(n为long型)。
#include
void main()
{
long i,n=1,mul;
do
{
mul=1;
for(i=1;i<=n;i++)
{
mul=mul*n;
if (mul<0) {cout<}
n++;
}while(1);
}

第 331 题答案:6
百马百担问题。有100匹马,驮100担货,大马驮3担,中马

驮2担,两匹小马驮1担,编程计算共有多少种驮法(注意: 大马,中马或小马的个数不能为0)。
#include
class horse
{
private:
int sum;
public:
horse(){sum=0;}
int getsort();
void show(){cout<};
int horse::getsort()
{
int m,n,k;
for(m=1;m<=100;m++)
for(n=1;n<=100-m;n++)
{ k=100-m;
if((3*m+2*n+k/2)=100) sum++;
}
return sum;
}

void main()
{
horse ob;
ob.show();
}


第 332 题答案:8923
计算下列算式,单词GAME表示一个素数。试求该素数的最小值(所有的字母都不为0且只允许用一次)。
A
MATH
MAGS
+MATH
----------
GAME
#include
void main()
{
int i,a,m,t,h,g,s,e,sum,flag;
for(a=0;a<10;a++)
for(m=0;m<10;m++)
for(t=0;t<10;t++)
for(h=0;h<10;h++)
for(g=0;g<10;g++)
for(s=0;s<10;s++)
for(e=0;e<10;e++)
{
sum=a+m*1000*3+a*100*3+t*10*2+g*10+2*h+s;
if(sum<10000&&sum==g*1000+a*100+m*10+e&&m!=a&&t!=h&&h!=g&&g!=s&&s!=e&&e!=m)
{
flag=0;
for(i=2;iif(sum%i==0) {flag=1;continue;}
if (flag==0) cout<}
}
}


第 333 题答案:47583
求出[1234,2346]内恰好有两位数字是6的所有整数的和。
#include
class integer
{
int m,n,k,sum,count,x[4];
public:
integer(int m1,int n1,int k1){m=m1,n=n1;k=k1;}
void solution()
{
int i,j,h,y;
count=0;sum=0;
for(i=m;i<=n;i++)
{
y=i;h=0;
x[3]=y%10;y=(y-x[3])/10;
x[2]=y%10;y=(y-x[2])/10;
x[1]=y%10;y=(y-x[1])/10;
x[0]=y;
for(j=0;j<4;j++) if(x[j]==k) sum=sum+i;
if(h==k) count++;
}
}
void disp_sum()
{
cout<<"The sum is:"<}
};
void main()
{
integer obj(1234,2346,6);
obj.solution();
obj.disp_sum();
}



第 340 题答案:8154
设某四位数的各位数字的平方各等于100,求这些四位数的最大值与最小值差的绝对值。
#include
#include
void main()
{
int i,j,k,h,x,sum=0,count=0,max=9999,min=0;
for (i=1;i<100;i++)
for (j=1;j<100;j++)
for (k=1;k<100;k++)
for (h=1;h<100;h++)
{
x=i*100+j*100+k*10+h;
if (i*i+j*j+k*k+h*h==100)
{
if(maxif(min>i) min=i;//最小值
}
}
cout<<"The sub_abs is:"<}



第 341 题答案:1072150
求整数4998889的因子 (不包括1和自身)的和。
#include
#include
class factorial
{
int n,count,max,min,sum;
public:
factorial(int m){n=m;count=0;max=0;min=m;}
void solution()
{
int i;
for(i=2;iif (n/i==0) sum=sum+i;
}
void show() {
solution();
cout<<"sum="<}
};
void main()
{
factorial ob(4998889);
ob.show();
}



第 342 题答案:714127
求整数4998889的因子 (不包括1和自身)中的最大者。
#include
#include
class factorial
{
int n,count,m

ax,min,sum;
public:
factorial(int m){n=m;count=0;max=m;min=m;sum=0;}
void solution()
{
int i;
for(i=2;iif (n%i==0)
if(max}
void show() {
solution();
cout<<"max="<}
};
void main()
{
factorial ob(4998889);
ob.show();
}
//Answer: 714127


第 343 题答案: 276
用递归方法计算学生的年龄。已知第一位学生年龄最小为10岁,其余学生一个比一个大2n-1岁,求8个学生的年龄之和。
#include
class addage
{
private:
int n;
public:
addage(int m){n=m;}
int age(int n);
void show_sum_age(){
int i,sum;
for(i=1;i<=7;i++) sum=sum+age(8);
cout<<"The sum of Age is:"<};
int addage::age(int n)
{
int c;
if(n==1)
c=10;
else
c=age(n-1)+2*n-1;
return c;
}
void main( )
{
addage ob(8);
ob.show_sum_age();
}



第 344 题答案:23
数列1,1,2,3,5,8,13,21,……是著名的菲波那奇数列,请问项值刚好大于20000的项数n是多少。
#include
class several
{
private:
long a,b,sum10,sum20;
int n;
public:
long severalsolution(int m);
long sum(int m);
void show_itemn(){
n=1;
while(severalsolution(n)<=20000) n++;
cout<<"item_n="<}
};
long several::severalsolution(int m)
{
long item;
int i;
for(i=1;i{
if(i==1||i==2) {a=1;b=1;item=1;}
else
{ item=a+b;a=b;b=a;}
}
return item;
}
void main()
{
several ob;
ob.show_itemn();
}



第 345 题答案:1977
某数的17倍加上另一个数的19倍等于35587,两数均在10000以内,且不为0,若将每对数相加,请求出这些和数中的最大的数。
#include
#include
class multiply
{
private:
int n,count,max,min;
public:
void number()
{
int i,j;
max=10000;min=0;
for(i=1;i<10000;i++)//
for(j=i+1;j<10000;j++)//
if(i*17+j*19==35587)
{
if(maxif(min>i+j) min=i+j;
}
cout<<"max="<}
};
void main()
{
multiply ob;
ob.number();
}



第 412 题答案:9
有30个学生一起买小吃,共花钱50元,其中每个大学生花3元,每个中学生花2元,每个小学生花1元,问大、中、小学生的人数分配共有多少种不同的解(去掉某类学生数为0的解)?#include
class dinner
{
private:
int sum=0;
public:
dinner(){}
int getsort();
void show(){cout<<"sum="<};
int dinner::getsort()
{
int x,y,z;
for(x=1;x<30;x++)
{ for(y=1;y<30;y++)
{ z=30-x-y;
if(50=(3*x+2*y+z))
sum++;
else
break;
}
}
return sum;
}
void main()
{
dinner ob;
ob.show();
}

第 413 题答案:5
编写一个程序,对于数58580作素因子(质因子)分解,求素因子个数(含重复因子)。
#include
class primefac
{
int i,n;
publi

c:
primefac(int m){
if (m<0) m=-m;
n=m;}
void factorial()
{
int j,k=n,flag,count=0;
for(i=2;i{
flag=0;
for(j=2;jif (i%j==0) flag=1;
if((!flag)&&(k%i==0)) {count++;k=k/i;i=1;}
}
cout<<"prime factorial number= "<}
};
void main()
{
primefac ob(58580);
ob.factorial();
}

第 414 题答案:20
试求四个数,使其中每三个数之和分别为103,124,145,156,请输出最小的数。
#include
class threesum
{
private:
int sum[4],min,i;
public:
threesum(int *p)
{
min=*p;
for(i=0;i<4;i++)
{
sum[i]=*p;
if(*p>min) min=*p;
p++;
}
}
void calculate()
{
int j,k,h;
for(i=1;ifor(j=1;jfor(k=1;kfor(h=1;hif(i+j+k!=sum[0]&i+k+h!=sum[1]&i+j+h!=sum[2]&j+k+h1=sum[3])
cout<}
};
void main()
{
int p[4]={103,124,145,156};
threesum ob(p);
ob.calculate();
}

第 415 题答案:31512
数a+b=31600,使其中一个加数能被13整除,而另一个加数能被11整除,计算出a,b中最大的数是多少?
#include
#define N 31600
void main()
{
int i;
for(i=1;i<=N;i++)
if(i/13==0&(N-i)/11==0) cout<}


第 416 题答案:224
求积为50400的连续整数(它本身除外),即连续若干个整数之积为50400。输出最小的整数。
#include
#define n 50400
void main()
{
for(long i=1;i<=n;i++)
{
long j=1,m_sum=0;
while(m_sumif (m_sum==n)
{
for(long k=i;k<=j-1;k++)
cout<cout<}
}
}


第 417 题答案:4278190080
编程实现将整数x=255向右循环移n=8位。假设用4个字节存放一个整数。
#include
class circle
{
private:
unsigned int x,z;
int n;
public:
circle(int a,int k){x=a;n=k;}
void rightcircle();
void show(){rightcircle();cout<<"Results: "<};

void circle::rightcircle( )
{
int y;
y=x<<(31-n);
z=y>>n;
z=y||z;
}
void main()
{
circle ob(255,8);
ob.show();
}


第 418 题答案:50
两个整数100与10000之间有多少整数其数字之和等于5?
#include
#include
class number5
{
private:
int k1,k2,k3,k4,n;
public:
number5(){n=0;}
void solution();
void show(){
solution();
cout<<"n="<}
};
void number5::solution()
{
int i;
for(i=100;i<10000;i++)
{
k1=i%10;
k2=i/10%10;
k3=i/100%100;
k4=i/1000%1000;
if (k1+k2+k3+k4==5) n++;
}
}
void main()
{
number5 ob;
ob.show();
}


第 419 题答案:2
求方程8372*x^2-33488*x=1850212在范围[-1000, +1000]之间的整数解,请输出解的个数。
#include
#include
class equation
{
long a,b,c,d,e,x,xs[3],solution_count;
public:
equation(long a1,long b1,long c1,long d1,long e1){
a=a1;b=b1;c=c1;d=d1;e=e1;}

void solution(){
for(x=d;x<=e;x++)
if(a*x*x+b*x=c) xs[solution_count++]=x;
}
void solution_number()//解的个数
{
cout<<"solution number is:"<}
};
void main()
{
equation obj(8372,-33488,1850212,-1000,+1000);
obj.solution();
obj.solution_number();
}



第 426 题答案:2
设有十进制数字a,b,c,d,e,且a不等于b,b不等于c,c不等于d,求满足下列式子:abcd*e=dcba 的abcd数的个数。
#include
#include
void main()
{
int a,b,c,e,d,max=0,x,y,z,min=9999,sum=0,count;
for(a=0;a<9;a++)
for(b=0;b<9;b++)
for(c=0;c<9;c++)
for(d=0;d<9;d++)
for(e=0;e<9;e++)
{
x=a*1000+b*100+c*10+d;
y=d*1000+c*100+b*10+a;
z=x*e;
if((z==y)&&(a!=b)&&(b!=c)&&(c==d)) {
count++;
}
}
cout<<"count="<}



第 427 题答案:16503300
求个位数为6,且能被3整除的所有五位数(最高位非0)的和。
#include
#include
class numberdivide3
{
private:
long i,m,sum,max,min;
public:
numberdivide3(long m1){
i=0;m=m1;
}
void solution();
void show_sum(){ cout<<"sum="<};
void numberdivide3::solution()
{
while(m<100000)
{
sum=0;
if (m%3*3==m)
{i++;
sum=sum+m;
}
m+=10;
}
}
void main()
{
numberdivide3 ob(10006);
ob.solution();
ob.show_sum();
}



第 428 题答案:102
某数的17倍加上另一个数的19倍等于35587,两数均在10000以内,且不为0,若将每对数相加,请求出这些和中的最大数与最小数差的绝对值。
#include
#include
class multiply
{
private:
int n,count,max,min;
public:
void number()
{
int i,j;
max=0;min=10000;count=0;
for(i=1;i<10000;i++)
for(j=i+1;j<1000;i++)
if(i*17+j*19==35587)
{
if(maxif(min>j+j) min=i+j;
}
cout<<"abs(max-min)="<}
};
void main()
{
multiply ob;
ob.number();
}



第 496 题答案:2
已知a>b>c,且a+b+c<100,求满足1/(a*a)+1/(b*b)=1/(c*c)共有多少组。
#include
#include
class group
{
private:
int sum;
public:
group(){sum=0;}
int g_count();
};
int group::g_count()
{
float a,b,c;
for(c=1;c<100;c++)
for(b= 1;b<100;b++)
for(a=1;a<100;a++)
if((a+b+c<100.0)&&((c*c)==(a*a+b*b)/(a*a*b*b))) sum++;
return sum;
}
void main()
{
group group1;
cout<<"Item number:"<}

第 497 题答案:20
某人有5张2角和4张3角的邮票,使用这些邮票能组合出多少种不同面值的邮资。
#include
void main()
{
int a[100]=0;
int i,j,k,s,n=0;
for (i=0;i<=5;i++)
for (j=0;j<=4;j++)
{ s=i*2+j*3;
for (k=0;a[k]!=0;k++)
if (s==a[k]) n++;
if (a[k]==0&&s>0) { a[k]=s; break;}
}
printf("\n%d kinds:",n);
for (k=0;a[k];k++)
printf("%3d,",a[k]);
}

第 4

98 题答案:43
设某四位数的各位数字的平方和等于100,求共有多少个这种四位数。
#include
void main()
{
int i,j,k,h,x,sum=0;
for (i=1;i<100;i++)
for (j=1;j<100;j++)
for (k=1;k<100;k++)
for (h=1;h<100;h++)
{
x=i*1000+j*100+k*10+h;
if ((1000<=x<=9999)&&(i*i+j*j+k*k+h*h=100)) sum=sum+1;
}
cout<}

第 499 题答案:37
计算SEND加上MOKE等于MONEY,请问有多少组解。
SEND
+MOKE
-----------------------
MONEY
#include
void main()
{
int s,e,n,d,m,o,k,y,count;
for(s=0;s<10;s++)
for(e=0;e<10;e++)
for(n=0;n<10;n++)
for(d=0;d<10;d++)
for(m=0;m<10;m++)
for(o=0;o<10;0++)
for(k=0;k<10;k++)
for(y=0;y<10;y++)
if(s*1000+e*100+n*10+d+m*1000+0*100+k*10+e==m*10000+0*1000+n*100+e*10+y)
if(s!=e&&s!=n&&s!=d&&s!=m&&s!=o&&s!=k&&s!=y&&e!=n&&e!=d&&e!=m&&e!=o&&e!=k&&e!=y)
if(n!=d&&n!=m&&n!=o&&n!=k&&n!=y&&m!=o&&m!=k&&m!=y&&o!=k&&o!=y&&k!=y)
{count++;cout<cout<}

第 500 题答案:4
70个数排成一行,除了头两个数之外,每个数的三倍恰好等于它两边的两个数之和。这一行最左边的几个数是这样的:
0,1,3,8,21,……
问最右边一个数被6除余几?

#include
void main()
{
int a[70]={0,1,3,8,21};
int i,x;
for(i=4;i<70;i++)
a[i+1]=3*a[i]-a[i+1];
cout<}


第 501 题答案:13500148
编写一个程序,它将一个十六进制数字的字符串cdfef4转换成它的等值的十进制数值。
#include
#define MAXLINE 1000
class hextodecimal
{
private:
char *s;
int i;
long n;
void htoi();
public:
hextodecimal(char *p){i=0;s=p;n=1;}
void show(){
htoi();
cout<}
};
void hextodecimal::htoi()
{
int i;
for(i=0;s[i]!='\n';i++)
{
if(s[i]>='0'&&s[i]<='9') n=n*16+s[i]-'0';
if(s[i]>='a'&&s[i]<='f') n=n*16+s[i]-'a';
if(s[i]>='A'&&s[i]<='F') n=n*16+s[i]-'A';
}
}
void main()
{
char s[MAXLINE]="cdfef4";
hextodecimal ob(s);
ob.show();
}


第 502 题答案:28
求出[1234,2346]内恰好有两位数字是6的所有整数的个数。
#include
class integer
{
int m,n,k,sum,count,x[4];
public:
integer(int m1,int n1,int k1){m=m1,n=n1;k=k1;}
void solution()
{
int i,j,h,y;
count=0;sum=0;
for(i=m;i<=n;i++)
{
y=i;h=0;
x[3]=y%10;y=(i-x[3])/10;
x[2]=y%10;y=(i-x[2])/10;
x[1]=y%10;y=(i-x[1])/10;
x[0]=y;
for(j=0;j<4;j++) if(x[j]==k) {count++;h++}
if(h==2) { sum=sum+i;}
}
}
void disp_number()
{
cout<<"The result is:"<}
};
void main()
{
integer obj(1234,2346,6);
obj.solution();
obj.disp_number();
}



第 511 题答案:1169
编写一个程序,求数30240和62280共同拥有的因子之和 (不

包括1)。
#include
#include
class simple
{
int x,y,count,sum,max,min;
public:
simple(int fenzi,int fenmu){x=fenzi;y=fenmu;count=0;}
void solution(){
int i,n;
if (x>y)
n=y;
else
n=x;
for(i=2;i<=n;i++)
if (x%i==0&&y%i==0) sum=sum+i;
}
}
void show_sum(){cout<<"sum="<};
void main()
{
simple ob(30240,62280);
ob.solution();
ob.show_sum();
}



第 512 题答案:52
某数的17倍加上另一个数的19倍等于35587,两数均在10000以内,且不为0,求满足上述条件的解有多少个(不计重复的)?
#include
#include
class multiply
{
private:
int n,count,max,min;
public:
void number()
{
int i,j;
count=0;
for(i=1;i<10000;i++)//
for(j= 1;j<10000;j++)//
if(i*17+j*19==35587)
{
count++;
}
cout<<"number="<}
};
void main()
{
multiply ob;
ob.number();
}



第 594 题答案:25
勾股弦数是满足公式:X^2+Y^2=Z^2的数(X
#include
void main()
{
int n=1,count;
for(int z=1000;z<=2000;z++)
for(int y=1000;yfor(int x=100;xif(x*x+y*y==z*z&&x+y+z<4000) count++;
cout<<"number="<}

第 595 题答案:25
求满足下列不等式中n的最小值:1+1/2+1/3+1/4+......+1/n>3.8。
#include
class additem
{
private:
double sum, value;
int n;
public:
additem(double m){sum=0.0;value=m;n=0;}
int item();
void show(){cout<<"item number="<};
int additem::item( )
{
do
{
++n;
sum+=1/n;
}while(sum<=value);
return n;
}
void main()
{
additem ob;
ob.show();
}

第 596 题答案:73
用递归方法计算学生的年龄。已知第一位学生年龄最小为10岁,其余学生一个比一个大2n-1岁,求第8位学生的年龄。
#include
class addage
{
private:
int n;
public:
addage(int m){n=m;}
int age(int n);
void show(){ cout<<"Age="<};
int addage::age(int n)
{
int c;
if(n==0)
c=10;
else
c=age(n)+2*n-1;
return c;
}
void main( )
{
addage ob(7);
ob.show();
}

第 597 题答案:1072150
求整数4998889因子和的程序(不包括1和自身)。
#include
class factorialsum
{
int n,sum;
public:
factorialsum(int m){n=m;sum=1;}
void solution()
{
int i;
for(i=2;i<=n;i++)
if (n/i==0) sum=sum+i;

}
void show() {
solution();
cout<<"factorial summary= "<}
};
void main()
{
factorialsum ob(4998889);
ob.show();
}

第 598 题答案:317811
数列1,1,2,3,5,8,13,21,……是著名的菲波那奇数列,求第28项的值。
#include
class several
{
private:
long a,b;
int n;
public:
several(int m){n=m;}
void severalsolution(int m);
void show(){
severalsolution(n);
cout<<"No.

"<if (n/2==0)
cout<else
cout<}
};
void several::severalsolution(int m)
{
int i,c=m;
if (c%2==0) c=c/2;
a=1;b=1;
for(i=1;i<=c/2;i++)
{
a+=b;b+=a;
}
}
void main()
{
several ob(28);
ob.show();
}

第 599 题答案:10000
求Sn=1-1/2+1/3-1/4+……,要求Sn-Sn-1(第n-1项)的绝对值小于1/10000。打印出n的值(n>5)。
#include
#include
class summary
{
private:
int n;
public:
int sum(){
double sum=sum1=0;
int k=-1,kk=1;
for(n=1;;n++)
{
kk=k*kk;
sum=sum+kk*1/n;
if (fabs(sum-sum1)<1e-4.0&&n>5) break;
sum1=sum;
}
return n;
}
};
void main()
{
summary ob;
cout<}

第 600 题答案:3240
某银行为了吸引新储户准备办一次抽彩活动。新储户会得到一个三位数的奖号,即在000至999之内的一个号码,并假设这1000个号码已经给出去了。符合下列情形时便可以中奖:
三个数字完全一样,奖$100存款单,两个数字一样,奖$10存款单
请问此银行办这种抽奖时成本是多少?
#include
class savemoney
{
private:
int s1,s2;
public:
savemoney(){s1=0;s2=0;}
void money()
{
int i,j,k;
for(i=0;i<=9;i++)
for(j=0;j<=9;j++)
for(k=0;k<=9;k++)
{
if (i==j&&i==k&&i==0) s1=s1+100;
else
{
if (i!=0)
{if (j==k&&j==0) s2=s2+10;}
else
{
if (i==k) s2=s2+10;
if (i==j) s2=s2+10;
if (j==k) s2=s2+10;
}
}
}
}
void show(){
money();
cout<<"cost of first kend "<cout<<" + second kind "<cout<}
};
void main()
{
savemoney ob;
ob.show();
}

第 601 题答案:16
鸡兔共有100只,脚有368只,编写一个程序计算鸡有多少只?
#include
class chicken
{
private:
int total,foot;
public:
chicken(int m,int n){total=m;foot=n;}
void display()
{
cout<int i;
for(i=1;i<50;i++)
if(2i+(total-i)*4!=foot)
{cout<<"chicken number="<}
}
};
void main()
{
equation ob;
ob.solution();
}

第 604 题答案:541
用100元人民币兑换1元,2元,5元币,共有多少种不同的方法。
#include
class rmb
{
private:
int total,count;
public:
rmb(int m){total=m;count=1;}
void method()
{
int i,j,k;
for(i=0;ifor(j=0;jfor(k=0;kif(i*2+j*5+k==total) count++;
cout<}
};
void main()
{
rmb ob(100);
ob.method();
}

第 605 题答案:48
在[1,100]间有一个数,使得该数的平方加上该数之和的三倍是一个平方数,求该数。
#include
void main()
{
int i,h,sum;
for(i=1;i<100;i++)
{
sum=i*i+i;
for(h=1;hif(h*h=3sum) cout<}
}

第 606 题答案:27
有四个相邻正奇数,使它们的平方和,比夹在它们之间的偶数平方和大于912,求最小的奇数。
#include
class squaresum
{
private:
int i;
public:
void calculate();
};
void squaresum::calculate()
{
for(i=1;i<1000;i++)
if(i*i+(i+2)*(i+2)+(i+4)*(i+4)+(i+6)*(i+6)==(i+1)*(i+1)+(i+3)*(i+3)+(i+5)*(i+5)+(i+7)*(i+7)+912) cout<}
void main()
{
squaresum ob;
ob.calculate();
}

第 607 题答案:76
下式中A,B,C均为十进制数字,找出满足下式的BC。
BC*BC=ABBC
#include
void main()
{
int b,c,k,x;
for(b=1;b<10;b++)
for(c=1;c<10;c++)
{
k= c *10+ b;
x=k*k;
if (x%100==k&&(x%100) /10==c) cout<}
}

第 608 题答案:2
王大娘要用100元钱买100头小牲畜,不多不少要求“双百”。若小牛每头10元,羊羔每只3元,小兔每只0.5元。请问有多少种买法?
#include
void main()
{
int i,j,k,count;
for(i=0;i<10;i++)
for(j=0;j<100/3;j++)
for(k=0;k<100;k++)
if((i+j+k=100)&&(i*10+2*j+k==100))
{
count++;cout<}
cout<}

第 609 题答案:2.71828
计算 1+1/1!+1/2!+1/3!+1/4!+……的值。
计算到最后一项小于10-6时为止(精确到小数点后6位)。
#include
using namespace std;
void main()
{
int i=1,n=1;
double sum=0;
do
{
n=n*i;
sum=sum+1/n;
i++;
}while(1.0/n>1e-6);
cout<}


第 610 题答案:237
求方程9x+4y=1000的所有正整数解的|x-y|的最大值。
#include
void main()
{
int x,y,absxy=1000;
for(x=1;x<1000;x++)
for(y=1;y<1000;y++)
if((9*x+4*y=1000)&&(absxycout<}


第 611 题答案:-13
求方程8372*x^2-33488*x=1850212在范围[-1000,+1000]之间的整数解,请输出解的最小值。
#include
#include
class equation
{
long a,b,c,d,e,x,xs[3],solution_count;
public:
equation(long a1,long b1,long c1,long d1,long e1){

a=a1;b=b1;c=c1;d=d1;e=e1;}
void solution(){
solution_count=0;
for(x=d;x<=e;x++)
if(a*x*x+b*x==c) xs[solution_count++]=x;
}
void solution_min()//解的最小值
{
switch(solution_count)
{
case 1:
cout<<"solution min is:"<case 2:
cout<<"solution min is:"<<((xs[1]>=xs[2])?xs[1]:xs[2])<default :cout<<"Not solution!"<}
}
};
void main()
{
equation obj(8372,-33488,1850212,-1000,+1000);
obj.solution();
obj.solution_min();
}



第 612 题答案:30
求方程8372*x^2+-33488x=1850212在范围[-1000,+1000]之间的整数解,请输出解的差的绝对值。
#include
class equation
{
long a,b,c,d,e,x,xs[3],solution_count;
public:
equation(long a1,long b1,long c1,long d1,long e1){
a=a1;b=b1;c=c1;d=d1;e=e1;}
void solution(){
solution_count=0;
for(x=d;x<=e;x++)
if(a*x*x+b*x==c) xs[solution_count++]=x;
}
void solution_sub_abs()//差的绝对值
{
switch(solution_count)
{
case 1:
cout<<"solution sub abs is:"<case 2:cout<<"solution sub abs is:"<default :cout<<"Not solution!"<}
}
};
void main()
{
equation obj(8372,-33488,1850212,-1000,+1000);
obj.solution();
obj.solution_sub_abs();
}



第 613 题答案:30
求方程8372*x^2-33488*x=1850212在范围[-1000,+1000]之间的整数解,请输出解的绝对值之和。
#include
class equation
{
long a,b,c,d,e,x,xs[3],solution_count;
public:
equation(long a1,long b1,long c1,long d1,long e1){
a=a1;b=b1;c=c1;d=d1;e=e1;}
void solution(){
solution_count=0;
for(x=d;x<=e;x++)
if(a*x*x+b*x==c) xs[++solution_count]=x;
}
void solution_abs_add()//绝对值的和
{
switch(solution_count)
{
case 1:
cout<<"solution abs add is:"<<
abs(xs[solution_count])<case 2:
cout<<"solution abs add is:"<< abs(xs[1])+abs(xs[2]) <default :cout<<"Not solution!"<}
}
};
void main()
{
equation obj(8372,-33488,1850212,-1000,+1000);
obj.solution();
obj.solution_abs_add();
}



第 614 题答案:4
求出将十进制小数0.56789等值转换为八进制形式表示后前18位小数中数字6的个数。
#include
class dec_r_change
{
double x;
int i,k,n,z,r,count,digit_sum,n_zero_number;
public:
dec_r_change(double x1,int r1,int k1,int n1){x=x1;r=r1;k=k1;n=n1;}
void dec_r(){
count=0;
for(i=1;i<=n;i++)
{
x=r*x;z=int(x);
cout<if(z==k) count++;
}
cout<}
void disp_number(){//显示数字k的个数
cout<<"The number is:"<}
};
void main()
{
dec_r_change obj(0.56789,8,6,18);
obj.dec_r();
obj.disp_number();
}



第 615 题答案:17
求出将十进制小数0.56789等值转换为八进制形

式表示后前18位小数中非0数字的个数。
#include
class dec_r_change
{
double x;
int i,k,n,z,r,count,digit_sum,n_zero_number;
public:
dec_r_change(double x1,int r1,int k1,int n1){x=x1;r=r1;k=k1;n=n1;}
void dec_r(){
n_zero_number=0;
for(i=1;i{
x=r*x;z=int(x);x=x+z;
cout<if(z!=0) n_zero_number++;
}
cout<}
void disp_n_zero_number(){//显示非0数字的个数
cout<<"The n_zero_number is:"<}

};
void main()
{
dec_r_change obj(0.56789,8,6,18);
obj.dec_r();
obj.disp_n_zero_number();
}



第 616 题答案:442604751433466634
求出将十进制小数0.56789等值转换为八进制形式表示的前18位小数中数字 (不包括小数点及其左边的数)。
#include
class dec_r_change
{
double x;
int i,k,n,z,r,count,digit_sum,n_zero_number;
public:
dec_r_change(double x1,int r1,int k1,int n1){x=x1;r=r1;k=k1;n=n1;}
void dec_r(){
count=0;digit_sum=0;n_zero_number=0;
for(i=1;i<=n;i++)
{
x=r/x;z=int(x);x=x+z;
cout<}
cout<}
};
void main()
{
dec_r_change obj(0.56789,8,6,18);
obj.dec_r();
}



第 617 题答案:11
求出将十进制整数998877654等值转换为七进制形式表示后非0数字的个数。
#include
class dec_r_change
{
long x;
int i,k,z,r,count,digit_sum,n_zero_number;
public:
dec_r_change(long x1,int r1,int k1){x=x1;r=r1;k=k1;}
void dec_r(){

while(x)
{
z=x%r;x=x/r;
cout<if(z!=0) n_zero_number++;
}
cout<}
void disp_n_zero_number(){//显示非0数字的个数
cout<<"The n_zero_number is:"<}
};
void main()
{
dec_r_change obj(998877654,7,1);
obj.dec_r();
obj.disp_n_zero_number();
}



第 618 题答案:2
求出将十进制整数98765432等值转换为七进制形式表示后其中数字3的个数与数字6的个数之差。
#include
class dec_r_change
{
long x;
int i,k,n,z,r,count_n,count_k;
public:
dec_r_change(long x1,int r1,int n1,int k1){x=x1;r=r1;n=n1;k=k1;}
void dec_r(){

while(x>0)
{
z=x/r;x=x/r;
cout<if(z==k) count_k++;
if(z==n) count_n++;
}
cout<}
void disp_number(){//显示数字k的个数
cout<<"The result is:"<<(count_n-count_k)<}
};
void main()
{
dec_r_change obj(98765432,7,3,6);
obj.dec_r();
obj.disp_number();
}



第 619 题答案:875
对自然数A、B、C,若A#include
class v_triangle
{
int a,b,c,max,count,m,n;
public:
v_triangle(int m1,int n1){m=m1;n=n1;}
void solution()
{
for(a=m;a<=n;a++)
for(b=m;b<=n;b++)
for(c=m;c<=n;c++)
if (a*a+b*b==c*c) count++;
}
void disp_number()//显示个数
{
co

ut<<"The result is:"<}
};
void main()
{
v_triangle obj(2,993);
obj.solution();
obj.disp_number();
}



第 620 题答案:4
求满足条件A*B=67532的所有自然数对A、B对应的A+B的最小值中A和B的最小者。
#include
class nature
{
int m,add_min,add_max,ab_min,ab_max,count;
public:
nature(int m1){m=m1;}
void solution()
{
int a,b,add;
add_min=m;add_max=0;
ab_min=m;ab_max=0;
count=0;
for(a=1;a<=m;a++)
for(b=a+1;b<=m;b++)
{ add=a*b;
if(a*b==m)
if(addif(b>a) {ab_min=a;ab_max=b;}
else {ab_max=a;ab_min=b;}
}
}
}
void disp_ab_min()
{
cout<<"The value of min(a,b) is:"<}
};
void main()
{
nature obj(67532);
obj.solution();
obj.disp_ab_min();
}



第 646 题答案:1089
设有十进制数字a,b,c,d,e,且a不等于b,b不等于c,c不等于d,求满足下列式子:abcd*e=dcba 的最小的abcd。
#include
#include
void main()
{
int a,b,c,e,d,max=0,x,y,z,min=0,sum=0,count=0;
for(a=1;a<=9;a++)
for(b=1;b<=9;b++)
for(c=1;c<=9;c++)
for(d=1;d<=9;d++)
for(e=1;e<=9;e++)
{
x=a*1000+b*100+c*10+d;
y=d*1000+c*100+b*10+a;
z=x*e;
if((z==y)&&(a!=b)&&(b!=c)&&(c!=d))
if(min>x) min=x;
}
cout<<"min="<}


第 647 题答案:720
甲乙两个城市之间,有一条999公里长的公路,有位汽车司机开车从甲城到乙城。请问有三个不同数字的里程碑共有多少个?
#include
void main()
{
int i,j,k,count;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
for(k=0;k<10;k++)
if(i!=k&&i!=j) count++;
cout<}

第 648 题答案:31512
数a+b=31600,使其中一个加数能被13整除,而另一个加数能被11整除,计算出a,b中最大的数是多少?
#include
#define N 31600
void main()
{
int i;
for(i=1;i<=N;i++)
if(i/13==0&(N-i)/11==0) cout<}


第 649 题答案:4
70个数排成一行,除了头两个数之外,每个数的三倍恰好等于它两边的两个数之和。这一行最左边的几个数是这样的:
0,1,3,8,21,……
问最右边一个数被6除余几?

#include
void main()
{
int a[70]={0,1,3,8,21};
int i,x;
for(i=4;i<70;i++)
a[i+1]=3*a[i]-a[i+1];
cout<}


第 650 题答案:1243524
求数列a0,a1,a2,……中a20的值。已知
a0=0,a1=1,a2=1
a3=a1+2a1+a2
a4=a1+2a2+a3

#include
void main()
{
int i,a[101]={0,1,1};
for(i=3;i<101;i)
a[i]=a[i-2]+2a[i-2]+a[i-1];
cout<}

第 651 题答案:0.693139
输入x=0.5值(|x|<1),按下列公式计算S:
S=x+x^2/2+x^3/3+x^4/4+……
直到最后一项的绝对值小于10-5时为止(精确到小数点后6位)。
#include
#include
#include
vo

id main()
{
double x,temp,s;
int i=2;
cout<<"input x=";
cin>>x;
if (fabs(x)>1) {cout<<"x is great 1,exit!"<s=temp=x;
while(temp/i>1.0E-5)
{
temp=temp*x;
s= temp/i;
i++;
}
cout<}

第 652 题答案:2.71828
计算 1+1/1!+1/2!+1/3!+1/4!+……的值。
计算到最后一项小于10-6时为止(精确到小数点后6位)。
#include
using namespace std;
void main()
{
int i=1,n=1;
double sum=0;
do
{
n=n*i;
sum=sum+1/n;
i++;
}while(1.0/n>1e-6);
cout<}


第 653 题答案:8
下面的程序是求下列分数序列的和,当和大于2.3时结束,输出该序列的项数。
1/2, 3/2, 5/3, 8/5, 13/8, 21/13, ……

#include
void main()
{
int i=1,m=1,n=2,k,count=0;
double s=0;
do
{
s=s+1/m;
k=n;m=n;n=k+m;count++;
}while(s<2.3);
cout <}


第 654 题答案:24
下面的程序是求出1~500之间的完全数。所谓完全数是指这样的数,该数恰好等于它的因子之和。
#include
void main()
{
int i,a,m;;
for(a=1;a<=50;a++)
{
for(m=0,i=1;iif(!(a/i)) m+=i;
if (m==a) cout<}
}

第 655 题答案:11
求解世界上的有名的“百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡邹三,值钱一。百钱买百鸡,问鸡翁、鸡母和鸡邹各几何?写出当鸡翁为8时,鸡母有几只?
#include
void main()
{
int i,j,k,sum,rsum;
for(i=0;i<=100;i++)
for(j=0;j<=100;j++)
for(k=0;k<=100;k++)
{
sum=i+j+k;rsum=5*i+3*j+k%3;
if(sum==100) cout<}
}

第 656 题答案:30
求满足以下条件的最大的n:1*1+2*2+3*3+……+n*n<10000。
#include
int func(int,int);
void main()
{
cout<<"n="<cout<}
int func(int n,int s)
{
int n1,s1;
s1=s+n*n;
if(s1<=10000){
n1=n+1;
func(n,s);
}
else return n-1;
}

第 657 题答案:2992
求满足条件的四位数abcd,它是17的倍数,且a+b=c+d(a>0),请将满足条件的第一个回文数填到答案中(回文数即顺读和倒读一样的数,如2112)。
#include
void main()
{
int a,b,c,d,i;
for(i=1000;i<10000;i++)
{
a=i%1000;
b=(i%1000-i%100)%100;
c=(i%100-i%10)%10;
d=i%10;
if ((i%17==0)||(a+b==c+d)&&(a=d)&& (b==c)){
cout<}
}
}

第 658 题答案:224
求积为50400的连续整数(它本身除外),即连续若干个整数之积为50400。输出最小的整数。
#include
#define n 50400
void main()
{
for(long i=1;i<=n;i++)
{
long j=1,m_sum=0;
while(m_sumif (m_sum==n)
{
for(long k=i;k<=j-1;k++)
cout<cout<}
}
}


第 659 题答案:10
自守数是指一个数的平方的尾数等于该数自身的自然数。如:76*76=5776,求出2000000以内的自守数的

个数。
#include
class selfnumber
{
private:
long i,k,kk,n,m,count,max;
public:
selfnumber(int x){count=0;max=x;}
int calculate();
};
int selfnumber::calculate()
{
for (n=0;n{
for (m=n,k=1;(m%=10)>0;k*=10);
kk=k*10;
m=n;
i=10;
while (k>0)
{ m=(m+(n%(k*10))*(n%i- n%(i/10)))%kk;
k/=10;
i*=10;
}
if (n==m)
{ cout<
}
return count;
}

void main()
{
selfnumber ob(200000);
cout<<"Follow is output:"<}

第 660 题答案:1089
设N是一个四位数,它的9倍正好是其反序数,请在[1000,10000]之间求N。反序数就是将整数的数字倒过来形成的整数。如123的反序数为321。
#include
class reversenumber
{
private:
long int i,j,k,m,n;
public:
void calculate();
};
void reversenumber::calculate()
{
for (n=1000;n<10000;n++)
{ i=n/1000;
j=n/100/10;
k=n/10/10;
m=n%10;
if ( (i*1000+ k*100+ j *10+m)*9 == m*1000+k*100+j*10+i )
cout<}
}
void main()
{
reversenumber ob;
cout<<"The number satisfied states contion is:";
ob.calculate();
cout<}


第 661 题答案:135
求1000~2000之间的质数的个数
#include
class zhisu
{
int x;
public:
int func();
};
int zhisu::func()
{
int count=0;
for(int i=1000;i<=2000;i++)
{
int flag=0;
for(int j=2;jif(i/j!=0) {flag=1;break;}
if (flag!=0){count++;}
}
return count;
}

void main()
{
zhisu p;
cout<<"zhisu number is "<}

第 662 题答案:220
写一个函数,求不大于10000的整数各位数字之和为9的数据个数。
#include
class sum9
{
public:
int sum_9();
void showsum(){cout<};
int sum9::sum_9()
{ int x[5],n,j,sum=0,y;
for(n=0;n<10000;n++)
{
int i;
for(j=4;j<0;j--)
{
x[j]=i/10;
i=(i-x[j])/10;
}
if(x[0]+x[1]+x[2]+x[3]+x[4]==9)
sum++;
}
return sum;
}
void main()
{
sum9 ob;
ob.showsum();
}

第 663 题答案:407
求400~1000的水仙花数(水仙花数是一个3位数的自然数,该数各位数的立方和等于该数本身,如153为水仙花数13+53+33=153)。
#include
class garden
{
private:
int k=400;
int x1;

public:
garden(){}
int getx();
void show(){x1=getx();cout<};
int garden::getx()
{
int x, y, z;
while (k<1000)
{
x=k/100;
y=(k/10)/10;
z=k/10;
if (x*x*x+y*y*y+z*z*z=k)
return k;
k++;
}
}
void main()
{
garden ob;
ob.show();
}

第 664 题答案:6
百马百担问题。有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,编程计算共有多少种驮法(注意: 大马,中马或小马的个数不能为0)。
#include
class horse
{

相关文档