程序11:将自然数2、3......乘到一起,它们的积的最后6位数恰好都是0,最后一个自然数最少可能是几?
程序分析:要使积的最后一位是0,就必须有一个5参与,那5是由谁提供的呢?是5的倍数提供的。
它们依次是:5,10,15,20,25……
例如:5=1×5 提供1个5 ;10=2×5 提供1个5 ; 25=5×5 提供2个5 ;125=5×5×5 提供3个5……
所以最后6位都是0,就必须提供6个5参与乘积,就是从5的倍数中找到分解出6个5来。
- @echo off&setlocal EnableDelayedExpansion
- set/a num=5,count=0,cishu=6
- :a
- set /a shang=!num!
- :b
- ::b这步循环是判断5的倍数能提供几个5
- set /a yushu=!shang! %% 5
- ::余数为0,表示含有1个5,count+1,接着再判断该数除以5后的商,还能不能提供5。
- if !yushu!==0 (
- set/a count+=1
- set/a shang/=5
- goto :b
- ) else (
- rem 余数不为0,表示5的个数已经求完了,判断达到6个没有,没有再求下一个5的倍数含有5的个数。
- if not !count!==!cishu! (set /a num+=5 & goto :a)
- )
- echo 将自然数2、3......乘到一起,它们的积的最后6位数恰好都是0,最后一个自然数最少可能是!num!。
- pause
复制代码
|