﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Xredman编程小筑-随笔分类-其它OJ</title><link>http://www.cppblog.com/xredman/category/10505.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 11 May 2009 07:30:35 GMT</lastBuildDate><pubDate>Mon, 11 May 2009 07:30:35 GMT</pubDate><ttl>60</ttl><item><title>TJU2845(Factorial )</title><link>http://www.cppblog.com/xredman/archive/2009/05/11/82564.html</link><dc:creator>Xredman</dc:creator><author>Xredman</author><pubDate>Mon, 11 May 2009 06:36:00 GMT</pubDate><guid>http://www.cppblog.com/xredman/archive/2009/05/11/82564.html</guid><wfw:comment>http://www.cppblog.com/xredman/comments/82564.html</wfw:comment><comments>http://www.cppblog.com/xredman/archive/2009/05/11/82564.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xredman/comments/commentRss/82564.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xredman/services/trackbacks/82564.html</trackback:ping><description><![CDATA[<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">&nbsp;&nbsp;&nbsp;2009-05-11 14:07:04 Accepted 2845 C++ 0.8K 0'00.00" 1204K <br>&nbsp;&nbsp;&nbsp;本题意为求n！的b进制末尾有几个0.<br><span style="FONT-FAMILY: 新宋体">&nbsp;&nbsp;&nbsp;<span style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">一开始猛然想到ZOJ上有一题也是求Factorial的，不过只是对于10进制而言。<br>&nbsp;&nbsp;&nbsp;网址：</span><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1022">http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1022</a><br>&nbsp;&nbsp;<span style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">&nbsp;对于任意进制的求法没碰到过。回想当初这题是每次除5往上加，因为对于十进制末尾的0始终是有5 * 2得到的，而2的个数绝对比5多，故只需计算5的个数即可。<br>&nbsp;&nbsp;&nbsp;后来QQ上问了才知道，对于b进制，每次都需要求b的质因子，然后以n去除b的某个质因子，再每次往上加，对这么多结果中取一个最小值即可。<br>&nbsp;&nbsp;&nbsp;取质因子可以这么写</span><br>&nbsp;&nbsp;&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="FONT-SIZE: 12pt; COLOR: #000080; FONT-FAMILY: 新宋体">int&nbsp;get_small_ans(int&nbsp;n,&nbsp;int&nbsp;b)<br><img id=Codehighlighter1_32_450_Open_Image onclick="this.style.display='none'; Codehighlighter1_32_450_Open_Text.style.display='none'; Codehighlighter1_32_450_Closed_Image.style.display='inline'; Codehighlighter1_32_450_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_32_450_Closed_Image onclick="this.style.display='none'; Codehighlighter1_32_450_Closed_Text.style.display='none'; Codehighlighter1_32_450_Open_Image.style.display='inline'; Codehighlighter1_32_450_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top><img src="http://www.cppblog.com/Images/dot.gif">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;bool&nbsp;flag&nbsp;=&nbsp;true;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;cnt,&nbsp;ans&nbsp;=&nbsp;0;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;for(i&nbsp;=&nbsp;2;&nbsp;i&nbsp;*&nbsp;i&nbsp;&lt;=&nbsp;b;&nbsp;i++)<br><img id=Codehighlighter1_111_340_Open_Image onclick="this.style.display='none'; Codehighlighter1_111_340_Open_Text.style.display='none'; Codehighlighter1_111_340_Closed_Image.style.display='inline'; Codehighlighter1_111_340_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_111_340_Closed_Image onclick="this.style.display='none'; Codehighlighter1_111_340_Closed_Text.style.display='none'; Codehighlighter1_111_340_Open_Image.style.display='inline'; Codehighlighter1_111_340_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cppblog.com/Images/dot.gif">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnt&nbsp;=&nbsp;0;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(b&nbsp;%&nbsp;i&nbsp;==&nbsp;0)<br><img id=Codehighlighter1_146_182_Open_Image onclick="this.style.display='none'; Codehighlighter1_146_182_Open_Text.style.display='none'; Codehighlighter1_146_182_Closed_Image.style.display='inline'; Codehighlighter1_146_182_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_146_182_Closed_Image onclick="this.style.display='none'; Codehighlighter1_146_182_Closed_Text.style.display='none'; Codehighlighter1_146_182_Open_Image.style.display='inline'; Codehighlighter1_146_182_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cppblog.com/Images/dot.gif">{//每次去进制的质因子<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;/=&nbsp;i;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnt++;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(cnt)<br><img id=Codehighlighter1_197_336_Open_Image onclick="this.style.display='none'; Codehighlighter1_197_336_Open_Text.style.display='none'; Codehighlighter1_197_336_Closed_Image.style.display='inline'; Codehighlighter1_197_336_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_197_336_Closed_Image onclick="this.style.display='none'; Codehighlighter1_197_336_Closed_Text.style.display='none'; Codehighlighter1_197_336_Open_Image.style.display='inline'; Codehighlighter1_197_336_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cppblog.com/Images/dot.gif">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(flag)<br><img id=Codehighlighter1_214_268_Open_Image onclick="this.style.display='none'; Codehighlighter1_214_268_Open_Text.style.display='none'; Codehighlighter1_214_268_Closed_Image.style.display='inline'; Codehighlighter1_214_268_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_214_268_Closed_Image onclick="this.style.display='none'; Codehighlighter1_214_268_Closed_Text.style.display='none'; Codehighlighter1_214_268_Open_Image.style.display='inline'; Codehighlighter1_214_268_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cppblog.com/Images/dot.gif">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;=&nbsp;get_ans(n,&nbsp;i)&nbsp;/&nbsp;cnt;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;=&nbsp;false;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;//取进制质因子中的最小一个<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;=&nbsp;min(ans,&nbsp;get_ans(n,&nbsp;i)&nbsp;/&nbsp;cnt);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;if(b&nbsp;&gt;&nbsp;1)<br><img id=Codehighlighter1_355_435_Open_Image onclick="this.style.display='none'; Codehighlighter1_355_435_Open_Text.style.display='none'; Codehighlighter1_355_435_Closed_Image.style.display='inline'; Codehighlighter1_355_435_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_355_435_Closed_Image onclick="this.style.display='none'; Codehighlighter1_355_435_Closed_Text.style.display='none'; Codehighlighter1_355_435_Open_Image.style.display='inline'; Codehighlighter1_355_435_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cppblog.com/Images/dot.gif">{&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(flag)<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;=&nbsp;get_ans(n,&nbsp;b);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;=&nbsp;min(ans,&nbsp;get_ans(n,&nbsp;b));<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;ans;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></div>
<p style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312"></span><span style="FONT-FAMILY: 新宋体"><span style="FONT-SIZE: 12pt">&nbsp;&nbsp;&nbsp;<span style="FONT-SIZE: 14pt; FONT-FAMILY: 楷体_GB2312">每次用n除b的质因子往上加时这样写的</span><br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="FONT-SIZE: 12pt; COLOR: #000080; FONT-FAMILY: 新宋体">int&nbsp;get_ans(int&nbsp;n,&nbsp;int&nbsp;b)<br><img id=Codehighlighter1_26_102_Open_Image onclick="this.style.display='none'; Codehighlighter1_26_102_Open_Text.style.display='none'; Codehighlighter1_26_102_Closed_Image.style.display='inline'; Codehighlighter1_26_102_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_26_102_Closed_Image onclick="this.style.display='none'; Codehighlighter1_26_102_Closed_Text.style.display='none'; Codehighlighter1_26_102_Open_Image.style.display='inline'; Codehighlighter1_26_102_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top><img src="http://www.cppblog.com/Images/dot.gif">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;sum&nbsp;=&nbsp;0;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;while(n&nbsp;/&nbsp;b)<br><img id=Codehighlighter1_58_87_Open_Image onclick="this.style.display='none'; Codehighlighter1_58_87_Open_Text.style.display='none'; Codehighlighter1_58_87_Closed_Image.style.display='inline'; Codehighlighter1_58_87_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_58_87_Closed_Image onclick="this.style.display='none'; Codehighlighter1_58_87_Closed_Text.style.display='none'; Codehighlighter1_58_87_Open_Image.style.display='inline'; Codehighlighter1_58_87_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cppblog.com/Images/dot.gif">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;+=&nbsp;n&nbsp;/&nbsp;b;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;/=&nbsp;b;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;sum;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></div>
</span></span>
<img src ="http://www.cppblog.com/xredman/aggbug/82564.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xredman/" target="_blank">Xredman</a> 2009-05-11 14:36 <a href="http://www.cppblog.com/xredman/archive/2009/05/11/82564.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>