Presentation is loading. Please wait.

Presentation is loading. Please wait.

综合实践一题多解试题 第四题 七(五)班 吴飞潼.

Similar presentations


Presentation on theme: "综合实践一题多解试题 第四题 七(五)班 吴飞潼."— Presentation transcript:

1 综合实践一题多解试题 第四题 七(五)班 吴飞潼

2 8的倍数 【问题描述】判断数是否8的整数倍。是“YES”,否“NO” 【输入样例1】 84 【输出样例1】 NO 【输入样例2】
【输出样例2】 YES 【数据范围】 30% n<=10的19次方 100% 0<n<=10 的1000次方

3 呵呵。。。。。。 突然有点饿

4 算法分析 扫一眼,最先想到的是:输入n, 判断n mod 8是否等于0,=0 输出 ‘Yes’, 否则输出‘No’。

5 方法一 --- 最easy方法 var n:longint; begin read(n);
if n mod 8=0 then write('Yes') else write('No'); if n=0 then write('No'); end. 这个程序有没有问题呢?

6 var n:int64;(因为数据规模太太太太太辣) begin read(n); if n mod 8=0 then write('Yes') else write('No'); if n=0 then write('No'); end.

7 数学算法分析 若一个数后三位是8的倍数,这个数就是8的倍数

8 数学算法 var a,b,c:longint; n:int64; begin read(n); a:=n div 100; //分离百位
b:=(n div 10) mod 10; //分离十位 c:=n mod 10; //分离个位 if (100*a+10*b+c) mod 8=0 then write(‘Yes’) else write(‘No’); //判断 end.

9 方法三 把数当做字符串读入,再把后三位分离,并转换为数字,最后判断。

10 程序 var s:string; a,b,c,l:longint; begin readln(s); l:=length(s);
a:=ord(s[l])-48; b:=ord(s[l-1])-48; c:=ord(s[l-2])48; if (a+10*b+100*c) mod 8=0 then write('Yes') else write('No'); end.

11 The End The End

12 Thank you! Goodbye and good luck.


Download ppt "综合实践一题多解试题 第四题 七(五)班 吴飞潼."

Similar presentations


Ads by Google