求1到 口之间能被3整除,且至少有一位数字是5的所有正整数的个数。 (1<n<10000)
时间: 2023-04-01 10:04:28 浏览: 235
计算1到100以内前5个能被3整除的数字
5星 · 资源好评率100%
根据题意,我们可以列出以下条件:
1. 能被3整除
2. 至少有一位数字是5
首先,能被3整除的数的个数为 n/3,其中 n 为上限。其次,至少有一位数字是5的数的个数为 9 * (n/10) + (n/2 - n/10),其中 9 * (n/10) 表示第一位是5,后面9个数字可以是~9中的任意一个,共有 n/10 种情况;(n/2 - n/10) 表示第一位不是5,后面有一位是5,共有 n/2 - n/10 种情况。最后,我们需要减去同时满足以上两个条件的数的个数,即能被3整除且至少有一位数字是5的数的个数。
根据同余定理,能被3整除的数的各位数字之和也必须能被3整除。因此,我们可以将问题转化为:求1到 n 之间各位数字之和能被3整除,且至少有一位数字是5的数的个数。
各位数字之和能被3整除的数的个数为 n/3,其中 n 为上限。至少有一位数字是5的数的个数为 9 * (n/10) + (n/2 - n/10),同上。同时满足以上两个条件的数的个数为 3 * (n/9 - n/90) - (n/3 - n/9),其中 3 * (n/9 - n/90) 表示各位数字之和能被3整除且第一位是5的数的个数,(n/3 - n/9) 表示各位数字之和能被3整除但第一位不是5的数的个数,两者相减即可。
综上所述,求得的答案为 n/3 + 9 * (n/10) + (n/2 - n/10) - (3 * (n/9 - n/90) - (n/3 - n/9))。
阅读全文