【2017年整理】程序答案.doc
文本预览下载声明
1.求100-550内的所有素数的个数。(素数是指只能被1和本身整除的数)
set talk off
clea
n=0
for i=100 to 550
f=1
for j=2 to i
if mod(i,j)=0
f=0
loop
endif
endfor
if f=1
n=n+1
endif
endfor
? n
return
76
2.下面程序求1!+3!+5!+…+(2K+1)!,要求在其和大于20000时中止程序运行。填空完成程序,然后运行程序得出正确结果。(答案填程序运行结果,保留整数位)
CLEA
I=0
S=0
DO WHILE .T.
I=I+1
IF I/2=__0_
LOOP//退出此循环
ENDIF
J=1
SUB=1
DO WHILE J=I
___SUB=SUB*J________
J=J+1
ENDDO
S=S+SUB
IF S20000
EXIT//退出程序
ENDIF
ENDDO
? S
3. 求100-550内的所有素数的个数。(素数是指只能被1和本身整除的数)
SET TALK ON
RETU
set talk off
clea
n=0
for i=100 to 550
f=1
for j=2 to i
if mod(i,j)=0
f=0
loop
endif
endfor
if f=1
n=n+1
endif
endfor
? n
return
4.判断正误
求方程9x+4y=2000的所有正整数解的|x-y|的最小值。
源程序文件:C:/SudenntHNCRE/2010706012520040/Program
set talk off
clear
min=0
for x=1 to 230
y=int((1000-9*x)/4)
z=abs(x-y)
if 9*x+4*y=1000 and y0 and minz
min=z
endif
endfor
? min
set talk on
return
5.程序填空 求能被3整除且有一位数字为6的三位数的个数。填空完成程序,然后运行程序得出正确结果。(答案填程序运行结果,保留整数位)
程序文件:C:/SudenntHNCRE/2010706012520040/Program/2.prg
SET TALk OFF
CLEA
S=0
X=100
DO WHILE X999
IF ___________
A=INT(X/100)
B=INT(X/10)-A*10
C=X-A*100-B*10
IF ____________
S=S+1
ENDIF
ENDIF
X=X+1
ENDDO
? S
RETU
6.程序编写
已知:
f(n)=f(n-1)+2*f(n-2)-5*f(n-3),f(0)=1,f(1)=2,f(2)=3,求f(0)+f(1)+…f(30)。
SET TALK OFF
CLEA
INPUT 请输入N: TO N
DIME F(N)
F(1)=1
F(2)=2
F(3)=3
S=F(1)+F(2)+F(3)
for i=4 to n
F(I)=F(I-1)+2*F(I-2)-5*F(I-3)
S=S+F(I)
ENDFOR
?S
RETURN
-750874
7.求出[1000,10000]内所有能被147或者197整除的整数之和。
#includeiostream.h
#includemath.h
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==0I%d!=0)||(I%c!=0I%d==0)){
sum=sum+I;
}
}
void add_sum()//求整数和
{
coutsum is:sumendl;
}
};
void main()
{
addition obj(1000,10000,147,197);
obj.solution();
obj.add_sum();
}
8.求方程8372*x*x-33488*x=1850212在范围[-1000,+1000]之间整数解的和的绝对值
if(a*x*x+b*x==c) xs[++solution_count]=x;
}
void solution_add_abs()//和的绝对值
{
switch(solution_count)
{
case 1:coutsolution add abs is:abs(xs
显示全部