个位数是6,且能被3整除的五位数共有多少个?

每日一练社区 2021-08-11 11:48:39

请你直接选择出正确答案

...全文
1196 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
艾老虎尤 2023-09-07
  • 打赏
  • 举报
回复 3


```c
#include<stdio.h>
int main()
{
    int i = 0;
    int ret = 0;
    for (i = 10000; i < 99999; i++)
    {
        if ((i % 3 == 0) && (i % 10 == 6))
        {
            ret++;
        }
    }
    printf("%d", ret);
    return 0;
}


```

注意,是五位数一共有多少,所以要从10000开始

一百减一是零 2023-04-23
  • 打赏
  • 举报
回复 1

//java写法

public static void main(String[] args) {
        int j = 0;
        for (int i = 10000; i < 99999; i++) {
            if(i%3 == 0 && String.valueOf(i).endsWith("6")){
                j++;
                System.out.println(i);//输入可以被3整除的数
            }
        }
        System.out.println(j);//一共有多少个
}

LegendOfBear 2023-03-22
  • 打赏
  • 举报
回复 5
首先,能被3整除的数字的特征是所有位上的数字加和能被3整除。当个位是6时,只要保证高4位加和能被3整除即可。这里除了最高位,其他三位可以任意取值,而最高位不能为0(因为题干说是5位数),所以当其他三位的数值确定后,加和也就确定了,最高位需要选择一个加在一起能被3整除的数字,这样的数字有3类,分别是(3-6-9:对应低4位加和已经是3的倍数的情况),(2-5-8:对应低4位加和除3余1的情况)以及(1-4-7:对应余2的情况)每种情况,最高位都有3种取值方式,所以用的方式为3×10×10×10=3000
Hann Yang 2023-02-05
  • 打赏
  • 举报
回复

个位数限定为6,且6也能被3整除,所以问题简化为:求前4位的数能否被3整除即可
python代码:

>>> len([i for i in range(1000,10000) if not i%3])
3000

TreaBoy 2023-02-05
  • 打赏
  • 举报
回复 1
(9999-1002)/3+1=3000
汤姆359 2022-11-03
  • 打赏
  • 举报
回复

添加了一点,把数给输出出来了。
count = 0
for i in range(10000, 100000):
a = i % 10
b = i % 3
if a == 6 and b == 0:
count = count + 1
print(i, end="\t")
if count % 10 == 0:
print()
print(count)

傻呆萌 2022-11-03
  • 打赏
  • 举报
回复 2

#include <stdio.h>

int main()
{
   /*  Write C code in this online editor and run it. */
       int count = 0;
    int base = 10002;
    while(base + 3 < 100000)
    {
        if((base % 10) == 6)
        {
            count++;
        }
        base += 3;
    }

       printf("count is %d \n", count);
   
       return 0;
}
拾柒017 2022-11-05
  • 举报
回复
@傻呆萌 你好,我这边用了你的代码,计数结果是准确的3000个,10002能被3整除,每次自增3,当个位数为6时,计数一次,这个是没有这问题, 我这边尝试了初始值改为10000,10001,10003等,这些值得到的结果也是3000,这个不太能理解,麻烦您解答一下谢谢
冰糖葫芦.756 2022-11-03
  • 打赏
  • 举报
回复 1
#include int main() { int a,n=0,b; for(a=1000;a<10000;a++ ){ b=a*10+6; if(b%3==0){ n++; } } printf("一共有%d个数",n ); return 0; }
RIOChing 2022-06-23
  • 打赏
  • 举报
回复 1
1-10里面有3个数可以被3整除,往后每10个数里就有3个数能被3整除(可能不太严谨,在外面简单想了下)五位数可以分成1000个1-10,那这样一共有3*1000
RIOChing 2022-06-23
  • 举报
回复
@RIOChing woc看错题但答对了
Stjörnu_oka 2022-05-06
  • 打赏
  • 举报
回复 1
#include int main(){ int a,i=0; for(a=10000;a<99999;a++){ if(a%10==6&&a%3==0){ i++; } } printf("%d",i); }
易小侠 2022-01-27
  • 打赏
  • 举报
回复

3000

China_feng123 2021-11-03
  • 打赏
  • 举报
回复
所以,要实现,应该怎么写?
吊吊啊吊吊 2021-12-07
  • 举报
回复
@China_feng123 前四位数1000-9999,里面哪些数是3的倍数,然后for循环,是的话,输出1,不是的话,输出0,再输出是的个数
菜鸟2003 2021-10-28
  • 打赏
  • 举报
回复
bc啥区别
晴空飞一鹤 2021-09-13
  • 打赏
  • 举报
回复 2
这四个答案光看for循环都知道了。。。
菜鸟2003 2021-10-28
  • 举报
回复
@晴空飞一鹤 bc啥区别

11,202

社区成员

发帖
与我相关
我的任务
社区描述
Study well and make progress every day
其他 企业社区
社区管理员
  • 每日一练社区
  • CSDN学习
  • 幻灰龙
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧