题目描述
<p class="MsoNormal" align="left"> 给定一个自然数 <span>n</span>,由 <span>n</span> 开始可以依次产生半数集 <span>set(n)</span>中的数如下。 </p> <p class="MsoNormal" align="left"> <span>(1) n</span>∈<span>set(n)</span>; </p> <p class="MsoNormal" align="left"> <span>(2) </span>在 <span>n</span> 的左边加上一个自然数,但该自然数不能超过最近添加的数的一半; </p> <p class="MsoNormal" align="left"> <span>(3) </span>按此规则进行处理,直到不能再添加自然数为止。 </p> <p class="MsoNormal" align="left"> 例如,<span>set(6)={6,16,26,126,36,136}</span>。半数集 <span>set(6)</span>中有 <span>6</span> 个元素。 </p> 注意半数集不是多重集。集合中已经有的元素不再添加到集合中。
输入格式
<p class="MsoNormal" align="left"> 每个文件只有 n 行,每行给出一个整数 <span>n,直到读到0表示数据读入结束</span>。<span>(0<n<=200) </span> </p>
输出格式
<p class="MsoNormal" align="left"> 输出n行,给出半<span style="line-height:1.5;">数集 set(n)中的元素个数。 </span> </p>
样例
样例输入 1
6
7
0
样例输出 1
6
6
提交代码
请先登录后提交
🤖 AI 解题助手
DeepSeek
就绪