C++编程解析-数的计算-函数

题目1
题目2
解题思路:
该题比较简单。唯一需要注意的就是,被拆分的数字本身也算一个。其实,就是这个数字前面是0。所以,在递归退出条件的时候,只要小于2,就是一个数。其实包含了这个数本身和这个数的左边是1。

程序:

#include<iostream>
using namespace std;
const int MAX = 1000/2+1;
int splitNum[MAX];
//一个数字n的拆法,包括自身 
int digitalNum(int n){
	if(n < 2)
		return 1;
	int temp = 0;
	int newNum = 0;
	for(int i = 0;i <= n/2;i++){
		if(splitNum[i] == -1){
			newNum = digitalNum(i);
			splitNum[i] = newNum;
		}else{
			newNum = splitNum[i];
		}
		temp += newNum;
	}
	return temp;
}
int main(){
	int n;
	int totalNum = 0;
	cin>>n;
	for(int i = 0;i <= n/2;i++)
		splitNum[i] = -1;
	totalNum = digitalNum(n);
	cout<<totalNum;
	return 0;
}

程序运行结果:
程序运行结果
今天,我们运用了函数的知识解决了一道题。想了解更多的内容,请关注:信息学奥赛NOIP通关必备-16函数(原价199现价9.9) - 网易云课堂 https://study.163.com/course/courseMain.htm?courseId=1209401803&share=2&shareId=480000001918401
现在随着全面人工智能时代的到来,少儿编程已是大势所趋,C++信息学编程是重点学习内容之一。
猿博士课堂是智慧猿少儿编程课堂打造的一个知识性栏目。宗旨在于针对少儿编程学习中遇到的问题答疑解惑,同时提供解题思路,训练计算思维,为成长助力。智慧猿少儿编程课堂一直致力于中国青少年的少儿编程普惠教育,立志做让对信息学编程感兴趣的青少儿学得起、学得懂、学得会的编程课。自上线以来也得到了很多家长学员的支持,为了回馈学员和家长,我们的课程最近开始新一轮促销。最低一折起,敬请关注!
问候

发布了34 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/xingzhe_666/article/details/102665375