美国计算机试题,1993年美国计算机程序设计资格赛试题答案.doc

第一题: 分数变小数

(1 ) 解题思路

本题可以模仿手算除法的形式,重复地进行求商和余数的运算,直到余数为 0 或出现

循环节为止。

(2 ) 参考程序

Const Max = 100; {小数点后最大位数 }

Var Left , Digit : Ar ray [0 . .Max ] Of Word; {记录每次的余数和商 }

n, d : Word;

q, Top: Word; {q为循环节的位置 }

Procedure Init ; {读入数据 }

Begin

Write(’ ENTER N , D:’ ) ;

Readln( n, d) ;

End ;

Procedure Calc; {计算 }

Var i : Word;

Begin

Digit [ 0]∶ = n Div d;

Left [ 0] ∶ = n Mod d;

Top ∶ = 0;

q ∶ = 0 ; {初始化商和余数 }

· 8 3 ·While Left [ Top] < > 0 Do {余数不为 0 则循环 }

Begin

Inc ( Top) ;

Digit [ Top]∶ = ( Left [ Top -1] * 10) Div d;

Left [ Top] ∶ = (Left [ Top-1 ] * 10 ) Mod d;

For i∶ = 0 To Top-1 Do

I f Left [ Top] = Left [ i ] Then

上海金水财税 71/ q ∶ = i + 1;

Exit ; {如果出现循环节则退出 }

End;

End;

End ;

Procedure Print ; {打印结果 }

Var i : Word;

Begin

Write( n, ’ / ’ , d, ’ = ’ ) ;

If Digit [0] < > 0 Then Write (Digit [ 0] ) ;

If Top > 0 Then Write (’.’ ) ;

For i ∶ = 1 To Top Do

Begin

I f i = q Then Write (’ (’ ) ;

Write(Digit [ i ] ) ;

End;

If q > 0 Then Write(’ )’ ) ;

Writeln;

End ;

Begin

Init ; {读入数据 }

Calc ; {计算 }

Print ; {打印结果 }

End .

(3 ) 运行结果

ENTER N ,D: 11 59

11 / 59 = .(1864406779661016949152542372881355932203389830508474576271)

第二题: 质数竖式

(1 ) 解题思路

· 9 3 ·此题比较简单,只需对两个乘数进行循环,然后判断竖式中的数是否满足要求。需注

意的一点是:乘积可能超出整型的范围,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值