D马诚涛074


私信TA

用户名:dotcpp0703331

访问量:325

签 名:

等  级
排  名 34865
经  验 440
参赛次数 3
文章发表 1
年  龄 0
在职情况 学生
学  校 内蒙古工业大学
专  业

  自我简介:

TA的其他文章

解题思路:
计算从1到N之间所有“好数”的数量,并将这个数量打印出来。所谓“好数”是指那些其奇数位上的数字是奇数,偶数位上的数字是偶数的数。

注意事项:

确保 judge 函数的实现正确无误,特别是位数的计算和判断逻辑。在 judge 函数中,注意当 a 为0时,while 循环应该正确处理,避免进入无限循环。

参考代码:

//引入标准输入输出库,以便使用printf和scanf函数

#include <stdio.h>

//定义一个名为judge的函数,接收一个整数a作为参数,返回一个整数(0或1)

int judge(int a) 

{

    //声明并初始化变量count(用于计算数字的总位数)和good(用于记录符合好数条件的数字变量),以及ori_a(用于存储原始数字a的值)

    int count = 0, good = 0;

    int ori_a = a;

    // 使用while循环计算数字a的总位数,每次除以10直到a变为0

    while (a != 0) 

    {

        count++;

        a /= 10;

    }

    a = ori_a; //重置a以便再次遍历每一位

    //使用for循环遍历数字a的每一位,current变量用于存储当前位的数字

    for (int i = 1; i <= count; i++) 

    {

        int current = a % 10; 

        // 根据位的位置判断其应该为奇数还是偶数

        if ((i % 2 == 0) && (current % 2 == 0)) // 偶数位并且当前数字为偶数

            good++;

        else if ((i % 2 == 1) && (current % 2 == 1)) // 奇数位并且当前数字为奇数

            good++;

        a /= 10; //将a除以10以移至下一位

    }

    return (good == count);// 如果符合条件(奇数位是奇数、偶数位是偶数)的数字数量等于总位数,则返回 1(是好数)

}

//定义主函数

int main() 

{

    //声明一个整形变量N,用于存储用户输入的整数

    int N;

    scanf("%d", &N);//从标准输入读取一个整数,并将其存储在变量N中

    //声明并初始化变量ans,用于存储满足条件的数的数量

    int ans = 0;

    //开始一个for循环,循环变量i从1开始,到N结束(包含N)

    for (int i = 1; i <= N; i++) 

    {

        //调用名为judge的函数,并传入当前循环的变量i作为参数,如果judge函数返回true(非零值),则变量ans的值增加1

        if (judge(i))

            ans++;

    }

    printf("%d", ans);// 输出变量ans的值,即满足条件的数的数量

    return 0;// 主函数返回0

}


 

0.0分

1 人评分

  评论区

  • «
  • »