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

CCF中学生计算机程序设计-基础篇-第一章-函数练习答案

(1)数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那么这个数就是数根。如果结果是两位数或者包括更多位的数字,那么再把这些数字加起来。如此进行下去,直到得到是一位数为止。比如,对于24来说,把2和4相加得到6,由于6是一位数,因此6是24的数根。再比如39,把3和9加起来得到12,由于12不是一位数,因此还得把1和2加起来,最后得到3,这是一个一位数,因此3是39的数根。
输入格式:一个正整数(小于10')。
输出格式:一个数字,即输入数字的数根。输入样例:
24
输出样例:
6

答案:

#include <iostream>
using namespace std;
int f(int a)
    {
    int s=0; //s代表累加和数 
    int b=1; //b代表削10剩数,设计为1开始循环 
    int c=0; //c代表削10的余数 
    if (a<10)
        {
        return a;
        }
    else 
        {
        while (b>0)
            {
            b=a/10;
            c=a%10;
            s=s+c;
            a=b;    
            }
        return f(s);
        }
    }
int main() 
{
    int n;
    cin >> n;
    cout << f(n) << endl;
    return 0;
}

 

 

 

 

(2)Pell数列a1,a2,az...的定义是这样的:a,=1,a2=2,..., an=2*an-1+ an-2(n>2)。给出一个正整数k,要求Pell数列的第k项模上32767是多少。
输入格式:第1行是测试数据的组数n;后面跟着n行输入。每组测试数据占1行,包括一个正整数k(1<=k<1000000)。
输出格式:n行,每行输出对应一个输入。输出应是一个非负整数。

输入样例:
2

1

8
输出样例:
1
408

答案:


#include <iostream>
using namespace std;


int pell(int k) {
    if (k == 1) return 1 ;
    if (k == 2) return 2 ;
    return 2 * pell(k-1) + pell(k-2);
}

int main() {
    int n, k;
    cin >> n;
    while (n--) {
        cin >> k;
        cout << pell(k)%32767 << endl;
    }
    return 0;
}

(3)树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数。例如:楼梯一共有3级,他可以每次都走一级;或者第一次走一级,第二次走两级;也可以第一次走两级,第二次走一级,一共3种方法。
输入格式:若干行,每行包含一个正整数N(1<=N<=30),代表楼梯级数。
输出格式:不同的走法数,每行输入对应1行输出。输入样例:
5810
输出样例:
8
3489

答案:

 

#include <iostream>
using namespace std;

int f(int n) {
    if (n == 1) return 1;
    if (n == 2) return 2;
    return f(n - 1) + f(n - 2);
}

int main() {
    int n;
    while (cin >> n) {
        cout << f(n) << endl;
    }
    return 0;
}

(4)把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的放法(放法数用K表示)?5,1,1和1,5,1是同一种放法。
输入格式:第1行是测试数据的数目t(0<=t<=20);以下每行均包含两个整数M和N(1<=M,N<=10),以空格分开。
输出格式:对输入的每组数据M和N,用1行输出相应的K。输入样例:
1
73
输出样例:
8

 

http://www.njgz.com.cn/news/30.html

相关文章:

  • 第二次总结——关系中的魔法语言
  • 2025.7 Solar应急响应-
  • 【计算几何】Largest Quadrilateral
  • 2025暑假qbxtNOIP实战梳理营Day1题目
  • 请求类型绑定响应类型
  • Untitled-1
  • AI代理性能提升实战:LangChain+LangGraph内存管理与上下文优化完整指南
  • GAIA基准测试介绍
  • 多项式全家桶(wjc)
  • 暑假qbxtNOIP实战梳理营Day1题目
  • 7月26日
  • 韦东山:嵌入式Linux全新系列教程之驱动大全(基于IMX6ULL开发板) 视频+资料(60G) 价值1299元
  • ARC200 小记
  • java第二十六天
  • 咕咕嘎嘎!!!(hard)
  • 主流PLC串口自由协议通信标准化
  • 20250726
  • Abp vNext -动态 C# API 实现原理解析
  • 健身营养——Stan Efferding
  • 20250726-31
  • Linux 如何统计系统上各个用户登录(或者登出)记录出现的次数?
  • ThreadLocal
  • linuxQT配置过程遇到的问题解决办法
  • 倍增法找LCA(最短公共祖先)
  • HTML网页基础(超文本标记语言)
  • shell学习2