石河子市网站建设_网站建设公司_UI设计师_seo优化
2025/12/23 22:20:33 网站建设 项目流程

【题目来源】
https://oj.czos.cn/p/1307

【题目描述】
输入一个自然数 n(n≤100),然后对自然数按照如下方法进行处理:
1. 在该自然数的左侧加上一个自然数,但加上的数不能超过 n 的一半;
2. 加上数后继续按此规则处理,直到不能再添加自然数为止;请问按照这样的方法添加数,能够产生多少个新数?
例如:n=6,则左侧添加数的方案有。

16
26
126
36
136

共能够产生 5 个新数。

【输入格式】
一个整数 n(n≤100)。

【输出格式】
按照规则能够产生的新数的个数。

【输入样例】
6

【输出样例】
5

【数据范围】
n≤100

【算法分析】
● 通过分析,本题所涉及的“自然数”不包含 0。
● 本题“递归”函数的设计,略显复杂。因为在此递归函数中,含有显示的循环结构设计。

【算法代码】

#include <bits/stdc++.h>
using namespace std;int f(int n) {int sum=0;if(n==0) return 0;for(int i=1; i<=n/2; i++) {sum=sum+f(i)+1;}return sum;
}int main() {int n;cin>>n;cout<<f(n);return 0;
}/*
in:6
out:5
*/




【参考文献】
https://oj.czos.cn/p/1335
https://blog.csdn.net/hnjzsyjyj/article/details/156192874
https://blog.csdn.net/hnjzsyjyj/article/details/156182882
https://blog.csdn.net/hnjzsyjyj/article/details/156185382



 

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询