追梦少年_66 发表于 2017-11-17 20:02

菜鸟学C之第7题:个位数是6,且能被3整除的五位数共有多少个。


/*
/*7.个位数是6,且能被3整除的五位数共有多少个。
*/

#include<stdio.h>
#include<stdlib.h>

//+1
void main1() {
        int length = 0;;
        for (int i = 10000; i < 99999; i++) {
                if (i % 10 == 6 && i % 3 == 0) {
                        length++;
                }
        }
        printf("%d", length);
        getchar();
}

//+3
void main2() {
        int length = 0;;
        for (int i = 9999; i < 99999; i+=3) {
                if (i % 10 == 6) {
                        length++;
                }
        }
        printf("%d", length);
        getchar();
}

//+10
void main3() {
        int length = 0;;
        for (int i = 10006; i <= 99996; i += 10) {
                if (i % 3 == 0) {
                        length++;
                }
        }
        printf("%d", length);
        getchar();
}

LeiSir 发表于 2017-11-17 20:13

看的懂,但我未必会写的出来。

冰露㊣神 发表于 2017-11-17 20:16

穷举效率太低了

追梦少年_66 发表于 2017-11-17 20:18

冰露㊣神 发表于 2017-11-17 20:16
穷举效率太低了

求指教,,,,,,{:300_965:}

tmpsforjxp 发表于 2017-11-17 20:21

本帖最后由 tmpsforjxp 于 2017-11-17 20:23 编辑

int length=0;
for(int i=1002;i<=9999;i++){
if(i%3=0){
length++;
}
}

照顾我的猫咪 发表于 2017-11-17 20:35

首先6能整除以3 只要前四位能整除3即可1000 ~9999 接下来只要计算这里面有几个能被3整除 (9999-1000)/3 +1 = 3000一步到位 这告诉我们一个道理 算法才是王道

追梦少年_66 发表于 2017-11-17 21:24

我根据两位朋友的思路,想了一下。我的想法如下:首先证明   能被3整除的数其各位的和一定能被3整除。各位的和能被3整除此数一定能被3整除。
假设有一个四位数abcd,它可以表示成以下形式:
abcd=1000a+100b+10c+d
=999a+99b+9c+a+b+c+d
=9×(111a+11b+c)+a+b+c+d
可以看出,9×(111a+11b+c)必定能被3整除,所以判断abcd能否被3整除,就看a+b+c+d能被3整除,也就是看它各数位上的数字之和能否被3整除.

证明:如果a+b+c+d可以被三整除,abcd可以被三整除.
∵ ——
abcd=1000a+100b+10c+d
=999a+99b+9c+a+b+c+d
而且 3|999,
3|99
3|9
∴3|999a
3|99b
3|9c
—即证。


在此题中,此5位数能被3整除,而末尾的6能被3整除,说明了前4位的和能被3整除。说明了前4位能被3整除。即证。

追梦少年_66 发表于 2017-11-17 21:25

照顾我的猫咪 发表于 2017-11-17 20:35
首先6能整除以3 只要前四位能整除3即可1000 ~9999 接下来只要计算这里面有几个能被3整除 (9999-1000)/3 ...

兄弟,谢谢你们,算法为王。这才是我发帖的目的,学习学习

追梦少年_66 发表于 2017-11-17 21:25

tmpsforjxp 发表于 2017-11-17 20:21
int length=0;
for(int i=1002;i

兄弟,谢谢你们,算法为王。这才是我发帖的目的,学习学习

一念天堂地狱 发表于 2017-11-17 22:18

不知道咋啊啊
页: [1]
查看完整版本: 菜鸟学C之第7题:个位数是6,且能被3整除的五位数共有多少个。