P1980 计数问题 试计算在区间 11 到 n n的所有整数中,数字 x(0 ≤ x ≤ 9)x(0≤x≤9)共出现了多少次?例如,在 11到 11 11中,即在 1,2,3,4,5,6,7,8,9...

本文介绍了一个使用C语言编写的程序,该程序通过输入两个整数n和x,然后遍历从1到n的所有整数,分解每个数字的每一位,并检查这一位是否等于x。程序最终输出满足条件的位数总和。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

int main()
{
    int n, x, i, j, m, N, s[10], a, b, c, d, e, f, h;
    scanf("%d %d", &n, &x);
    m = 0;
    for (i=1; i<=n; i++)    //n次循环,遍历n个数
    {
        a = i/1000000;          //分解1000000内数字的各个位数字
        b = (i%1000000) / 100000;
        c = (i%100000) / 10000;
        d = (i%10000) / 1000;
        e = (i%1000) / 100;
        f = (i%100) / 10;
        h = i%10;
        s[0] = h;       //将各个位上的数字赋值到数组s中
        s[1] = f;
        s[2] = e;
        s[3] = d;
        s[4] = c;
        s[5] = b;
        s[6] = a;
        if(i < 10) N = 1;       //判断数字位数,将位数赋值给N作为循环搜索条件
        if(9<i  && i<100) N = 2;
        if(99<i  && i<1000) N = 3;
        if(999<i  && i<10000) N = 4;
        if(9999<i  && i<100000) N = 5;
        if(99999<i  && i<1000000) N = 6;
        if(999999<i  && i<10000000) N = 7;
        for (j=0; j<N; j++)     //对N位数的N次循环搜索
        {
            if (s[j] == x)
            {
                m++;
            }
        }
    }
    printf("%d\n", m);
    return 0;
}

转载于:https://www.cnblogs.com/Tristan-Adams/p/9648005.html

c++ 题目描述 奶牛 Bessie 回到学校了!她开始做她的数学作业,在作业中她被要求将正整数四舍五入到 10 10 的幂。 要将一个正整数 a a 四舍五入到最接近的 10 b 10 b ,其中 b b 为正整数,Bessie 首先找到从右往左数第 b b 个数位。令 x x 为这个数位。 如果 x ≥ 5 x≥5,Bessie 将 a a 增加 10 b 10 b 。 然后,Bessie 将从右侧开始直至第 b b 个数位的所有数位均设置为 0 0。 例如,如果 Bessie 想要将 456 456 四舍五入到最接近的 10 2 10 2 (百位),Bessie 会首先找到从右往左数第 2 2 个数位 5 5。这意味着 x = 5 x=5。然后由于 x ≥ 5 x≥5,Bessie 将 a a 增加 100 100。最后,Bessie 将 a a 中从右侧开始直至第 2 2 个数位的所有数位设置为 0 0,结果为 500 500。 但是,如果 Bessie 将 446 446 四舍五入到最接近的 10 2 10 2 ,她将得到 400 400。 在看了 Bessie 的作业后,Elsie 认为她已经发明了一种新的舍入方式:链式舍入。要链式舍入到最接近的 10 b 10 b ,Elsie 将首先舍入到最接近的 10 1 10 1 ,然后舍入到最接近的 10 2 10 2 ,以此类推,直至舍入到最接近的 10 b 10 b 。 Bessie 认为 Elsie 是错误的,但她太忙于数学作业,无法确认她的怀疑。她请你计算出存在多少个不小于 2 2 且不超过 N N 的整数 x x( 1 ≤ N ≤ 10 9 1≤N≤10 9 ),使得将 x x 四舍五入到最接近的 10 P 10 P 与链式舍入到最接近的 10 P 10 P 的结果不同,其中 P P 是满足 10 P ≥ x 10 P ≥x 的最小整数。 输入格式 你需要回答多个测用例。 输入的第一行包含一个整数 T T( 1 ≤ T ≤ 10 5 1≤T≤10 5 ),为测用例的数量。以下是 T T 个测用例。 每个测用例的输入仅有一行,包含一个整数 N N。输入保证同一测点中的所有 N N 各不相同。 测点性质 测1:样例。 测点 2-4: N ≤ 10 3 N≤10 3 。 测点 5-7: N ≤ 10 6 N≤10 6 。 测点 8-13:没有额外限制。
最新发布
03-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值