1.练习项目:
问题描述
在一个神秘的世界中,存在一个传说中的神秘花园,被认为拥有无限的知识。但要进入这个花园,你必须解决花园入口处的一道神秘数学难题。这个难题与一个特殊的数学函数相关,称为“神秘函数”。
神秘函数 S(x) 的定义如下:
当 x 为 0 时,S(0)=1。
当 x 为偶数时,S(x)=S(x/2)。
当 x 为奇数时,S(x)=S(x−1)+1。
你需要编写一个程序,计算给定正整数 x,神秘函数 S(x) 的值。只有当你正确解决了这道难题,才能获得通行证,进入神秘花园探索其中的知识宝藏。
输入格式
输入包含一个正整数 x(1≤x≤1e6),表示你要解决的神秘函数问题。
输出格式
输出一个整数,表示神秘函数 S(x) 的值,即你成功解决问题后得到的答案。
2.选择课程
在蓝桥云课中选择课程《16届蓝桥杯省赛无忧班(C&C++ 组)4期》,选择第二章“基础算法”编程17并开始练习。
3.开始练习
(1)源码:
#include<bits/stdc++.h>
using namespace std;
int s(int x)
{
if(x==0){
return 1;
}else if(x%2==0){
return s(x/2);
}else{
return s(x-1)+1;
}
}
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int x;
cin>>x;
cout<<s(x)<<'\n';
return 0;
}
(2)检验结果
对此代码进行检验,检验后无报错,提交此代码,判题结果为正确100分。
(3)练习心得:注意每段代码末尾的分号是否存在,如不存在则需即使补充;输入法是否切换为英语模式;语法是否错误。