从1到1000中多少个包含3的数

原创 2013年12月05日 09:05:12

题目为:

从1~1000的1000个数中有多少个包含3的数,其实这个问题用排列组合的方法可以很好的解出来。

题目问有多少个包含3的数,其反面意义就是:1000-不包含3的数

但是解的过程中可能会有误区,我们来看一下解法:

一、只有个位数1~9:出去3,有8个数;

二、两位数10~99:十位上可已选择除3外的1~9的8个数,个位上可以选择除3外的0~9的9个数,故8*9=72;

三、三位数100~999:百位上可以选除3外的1~9的8个数,十位上可以选择除3外的0~9的9个数,个位上可以选择除3外的0~9的9个数,故8*9*9=648;

这里可以有四也可以没有,如果有四的话那么:

四、四位数只有1000,故1

所以个数为1000-(8+72+648+1) = 271;

这里值的指出的是,可能忘记计算1000这个四位数,要是这样的话计算出来的就是272,这样的话,其实1000是不包含3的,

要是忘记1000的话,应该用999-(8+72+648)=271

下面给出程序的验证结果:

/* Filename:   contains3.c
 * Description:用来计算从1~1000的数中有多少个含有3的数。
 * Author:     Howard
 * Date  :     2013-12-05
 * Version:    v1.0
 */

#include <stdio.h>

void solve()
{
        int i = 0;             /*1=<i<=1000*/
        int j = 0;             /*控制输出个数为10时换行*/
        int count = 0;         /*计数符合要求的数的个数*/
        int one, two, three;   /*one(百位) two(十位) three(个位)*/

        for (i=1; i<=1000; i++){
                one   = i/100;
                two   = i%100/10;
                three = i%10;
                if (3==one || 3==two || 3==three){
                        j ++;
                        count ++;
                        printf("%4d", i);
                }
                if (10==j){
                        j = 0;
                        printf("\n");
                }
        }
        printf("\n总数为:%4d\n", count);
}

int main(void)
{
        solve();
        return 0;
}
                                         


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

求1000!的结果中包含多少个0?注:1000! = 1×2×3×4×5×...×999×1000

package com.itheima; import java.math.BigInteger; import java.util.regex.Matcher; import java.util....

黑马程序员——求1000!的结果中包含多少个0

------- android培训

汇编之题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?...

这是我学习汇编时的写的小例子,记之于此! 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有...

面试算法题:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

题目 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 这个题目还是网上找的。 思路 这个没什么好思路目前。想到的最通用的办法就是:先找出四个数字的其中三个...
  • UESTCAA
  • UESTCAA
  • 2016年11月16日 20:18
  • 1200

有 1、 2、 3、 4 个数字, 能组成多少个互不相同且无重复数字的三位数? 计算并打印出这些数字

作业:1、 有 1、 2、 3、 4 个数字, 能组成多少个互不相同且无重复数字的三位数? 计算并打印出这些数字; 编写思想:在百位、个位、十位数字上分别遍历1/2/3/4, 只要十位、个位、百位上...

有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

//有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? public class Test6{ public static void main(String[] args...

java 循环问题 大全 求2~100a之内的素数。求水仙花数:(1~1000)。有1、2、3、4四个数字,输出所有能组成的互不相同且无重复的三位数。打印空心菱形

1.求水仙花数:(1~1000) -->三位的水仙花数一共有多少个 4个   水仙花数:一个数各个位上的立方之和,等于本身。   例如: 153 = 1(3) + 5(3)+3(3) = 1+1...
  • KY1996
  • KY1996
  • 2017年07月13日 21:32
  • 340

求从1到n的数中,总共包含了多少个1

首先容易想到的一种方法就是遍历这n个数,求出每个数中包含1的个数,然后加起来就ok了 [cpp] view plain copy //从1 到 n的正数中1出现的次数  ...

一个栈(无穷大)的进栈序列为1,2,3,…,n,有多少个不同的出栈序列?

题目描述:       输入n个互不相同的字符串  求解它们的可能的出栈方式,并输出出栈序列。 求解方法:           计算出栈序列数目,就是卡特兰数C(2n,n)/(n+1) (n...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:从1到1000中多少个包含3的数
举报原因:
原因补充:

(最多只允许输入30个字)