当前位置: 首页 > article >正文

蓝桥杯2024年11月20日个人赛报名页下方例题解答

原题:

小明对数位中含有2、0、1、9 的数字很感兴趣(不包括前导0),在1到40中这样的数包括1、2、9、10至32、39和40,共28个,他们的和是574。

请问,在1到n中,所有这样的数的和是多少?


这个题本身并没有太难,比较复杂的地方在于判断,官网给出了一种更加简洁的方法,但是我当时没有看,我看到题目后立刻尝试着手自我解答,下面给出一种我的思路:

首先设立一个input用于接收我们输入的n,然后搞一个变量用于控制从1到n的循环,用以判断循环中这些数字是否属于我们的筛选范畴,如果属于则用sum+=它,如果不属于则跳过,反复判断之后,我们可以得到正确答案,下面给出完整的代码解答过程:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main()
{
	int input = 0; int m = 0;
	int sum = 0; int n = 0;
	int t = 0;
	scanf("%d", &input);
	for (n = input; n > 0; n--) {
		while (n / 10 != 0) {
			m++;
			n /= 10;
		}
		m += 1; n = input-t;//至此位数依然清楚为m
		for (m = m; m >= 0; m--) {
			if (n % 10 == 9 || n % 10 == 2) {
				printf("%d\n", input - t);
				sum += input-t;
				break;
			}
			else if (n % 10 == 1) {
				printf("%d\n", input - t);
				sum += input-t;
				break;
			}
			else if (n > 9 && n % 10 == 0) {
				printf("%d\n", input - t);
				sum += input-t;
				break;
			}
			if (n / 10 != 0) {
				n = n / 10;
			}
		}
		t++; m = 0; n++;
	}
	printf("Sum=%d", sum);
	return 0;
}

我想到一个事情就是,如果我们多设立几个变量,比如a1、a2、a3、a4,并且用scanf分别给它们赋值,再用它们替换循环判断中2、9、1、0的位置,这样我们就可以求出任意1~n以内,包含a1、a2、a3、a4的数字的和,算是拓展了一下这个题。

关于这个代码,我设置了可以把每一个被加进sum的数字进行打印的功能,以方便我们判断是否有搞错或者漏掉的项(虽然实际操作起来判断仍然不是特别直观)。


http://www.kler.cn/a/402529.html

相关文章:

  • Excel把其中一张工作表导出成一个新的文件
  • 软件/游戏提示:mfc42u.dll没有被指定在windows上运行如何解决?多种有效解决方法汇总分享
  • 力扣--LCR 154.复杂链表的复制
  • 【Android】android compat理解
  • C语言练习.if.else语句.strstr
  • elasticsearch的文档管理
  • YOLOv8-ultralytics-8.2.103部分代码阅读笔记-conv.py
  • 重构代码之引入外部方法
  • 【c++篇】:深入c++的set和map容器--掌握提升编程效率的利器
  • 【JavaSE】【网络编程】UDP数据报套接字编程
  • MFC1(note)
  • 高频面试题(含笔试高频算法整理)基本总结回顾21
  • goland单元测试
  • 【虚拟机】VMWare的CentOS虚拟机断电或强制关机出现问题
  • 一次成功尝试:旧电脑通过网线,连接带无线网卡电脑上外网
  • Android和IOS的区别
  • C++——智能指针剖析
  • 专家PID控制
  • 在 for 循环中,JVM可能会将 arr.length 提升到循环外部,仅计算一次。可能会将如何解释 详解
  • AwsCredentialsProvider认证接口
  • Python运算符列表
  • C++设计模式之适配器模式与桥接模式,装饰器模式及代理模式相似点与不同点
  • 数据结构 【带环单链表】
  • 【Chatgpt】如何通过分层Prompt生成更加细致的图文内容
  • Android开发实战班 - 数据持久化 - Room 数据库应用
  • Spark Catalyst 优化器具有高度的可扩展性,如何自定义优化规则?