竞赛
考级
简单题目分析: 分析数字超过long long范围,可以用字符串形式输入。小学时数学老师说过如何判断一个数是否是3的倍数,我们可以代数推导规律,发现9的倍数分析方法与3是极为类似的! 我们可以运用ASCII码的相关知识进行编写代码,具体代码如下: 本帖运用于初学者学习,可以进行借鉴使用!
鍾離しょうり
题目分析 NNN 最大为 1020000010 ^ {200000}10200000,显然超出整数正常处理范围,可以使用高精度除法但这题有更便捷的做法。 以下给出本题的部分方法。 方法一:999 的倍数含有性质,如果一个数是 999 的倍数,它们的各位数字之和一定是9的倍数。这是因为一个数被9整除,当且仅当它的各位数字之和被9整除。 方法二:利用同余性质,N % 9 == 0,把 NNN 拆成各个位数相加,如将 123 拆成 100 + 20 + 3,计算过程同时求余即可。 AC代码 方法一 方法二 复杂度分析 计算过程需要用到 NNN 中的各个位数,则复杂度为 NNN 的长度,即O(∣N∣)O(|N|)O(∣N∣)。
AC君
因为题目离谱 python专制各种花里胡哨
一只可爱的七七
#include <bits/stdc++.h> using namespace std; char n[1000005]; int sum,ln; int main(){ scanf("%s",n+1); ln = strlen(n+1); for(int i = 1;i<=ln;i++){ sum+=n[i]-'0'; } if(sum % 9==0){ cout<<"YES"; } else{ cout<<"NO"; } }
136****5660
AC!
沈思邈
把NNN按数位拆分, N=a1+10a2+100a3+...N=a_1+10a_2+100a_3+...N=a1 +10a2 +100a3 +... 则Nmod 9=(a1mod 9)+(10a2mod 9)+(100a3mod 9)+...N\mod9=(a_1\mod9)+(10a_2\mod9)+(100a_3\mod9)+...Nmod9=(a1 mod9)+(10a2 mod9)+(100a3 mod9)+... =(a1mod 9)+(a2mod 9)+(a3mod 9)+...=(a_1\mod9)+(a_2\mod9)+(a_3\mod9)+...=(a1 mod9)+(a2 mod9)+(a3 mod9)+... =(a1+a2+a3+...)mod 9=(a_1+a_2+a_3+...)\mod9=(a1 +a2 +a3 +...)mod9.
队团加不)ด้้童帅_者仇复
zsy
6.