欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 蓝桥杯2024年第15届B组试题C

蓝桥杯2024年第15届B组试题C

2025/2/26 13:28:55 来源:https://blog.csdn.net/igyfy/article/details/144354493  浏览:    关键词:蓝桥杯2024年第15届B组试题C

试题C: 好数

时间限制: 1.0s 内存限制: 256.0MB 本题总分:10分

【问题描述】

        一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位···)上 的数字是奇数,偶数位(十位、千位、十万位···)上的数字是偶数,我们就称 之为“好数”。

         给定一个正整数N,请计算从1到N一共有多少个好数。

【输入格式】

        一个整数N。

【输出格式】

        一个整数代表答案。

【样例输入1】

  24

【样例输出1】

  7

【样例输入2】

  2024

【样例输出2】

  150

【样例说明】

对于第一个样例,24以内的好数有1、3、5、7、9、21、23,一共7个。

【评测用例规模与约定】

        对于10%的评测用例,1≤N≤100。

        对于100% 的评测用例,1≤N≤10的7次方。

解析:

我们定义个变量,让它初始化为1(表示第一位数个位)每判断一次就加1;

用个函数表示判断符合就返回1,否则就返回0;

输入个n, 创个循环(从1到n)一次次判断,定义个变量(表示计数)每判断成功就加1

代码:

#include<stdio.h>
#include<string.h>
int main(){int i,n,num=0;scanf("%d",&n);//输入n的值for(i=1;i<=n;i++){//从1到n 的循环 if(s(i)){num++;//num是计数,符合就加1 }}printf("%d",num);//输出有几个符合 return 0;
}
int s(int x){int i,n=1;//while(x){//让每一位数都显示出来 从个位开始 if(n%2==1){if(x%10%2==0){//判断奇数位是否是奇数  return 0;//不是就返回0 }x=x/10;//是就继续 n++;}else{//偶数位if(x%10%2==1){//判断偶数位是否是偶数return 0;	//不是就返回0}x=x/10;//是就继续 下一位 n++;//位数也加一位 }}return 1;//全部符合就返回1 
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词