上海月赛 数根

 给定一个十进制下的正整数 n,若 n 的各位数字之和是一位数,则这个和是 n 的数根。例如,999 的数根为 9,因为 9+9+9=272+7=9。给定 n,请输出它的数根。

这样的话,和计算一个数的位数方法差不多

ans=n;
a=n;
n=0;
while(ans>=10)//如果ans是个位数,就退出循环
{
    if(a<=0)
    {
        a=n;//让a等于新计算出来的数字,从新再来一遍
        ans=n;//ans也要等于新计算出来的数字
        n=0;//把n归零
    }
    n+=a%10;//加上目前数字的最后一位
    a/=10;//去掉个位
}

我看了数据范围:

1≤n≤10^1000

就用了字符串

for(int i=0;i<s.length();i++)
{
    n+=s[i]-'0';//加上数字的每一位
}

应该是对的

posted @ 2020-07-11 17:56  zjy123  阅读(137)  评论(0编辑  收藏  举报
//需要jquery插件 /* 鼠标特效 */ var a_idx = 0; jQuery(document).ready(function($) { $("body").click(function(e) { var a = new Array("(❤ ω ❤)","(☆▽☆)","(●'◡'●)","(✿◡‿◡)","(*^_^*)","O(∩_∩)O","( •̀ ω •́ )✧","(o゚v゚)ノ","(~ ̄▽ ̄)~","((≧∇≦)ノ","φ(゜▽゜*)♪","U•ェ•*U"); var $i = $("").text(a[a_idx]); a_idx = (a_idx + 1) % a.length; var x = e.pageX, y = e.pageY; $i.css({ "z-index": 999999999999999999999999999999999999999999999999999999999999999999999, "top": y - 20, "left": x, "position": "absolute", "font-weight": "bold", "color": "rgb("+~~(255*Math.random())+","+~~(255*Math.random())+","+~~(255*Math.random())+")" }); $("body").append($i); $i.animate({ "top": y - 180, "opacity": 0 }, 1500, function() { $i.remove(); }); }); });