CSP-J 2023 入门级 第一轮 阅读程序(3)

2023-09-21 21:49:53

【题目】

CSP-J 2023 入门级 第一轮 阅读程序(3)

#include <iostream> 
#include <cmath>
using namespace std;
int solve1(int n) {
    return n * n;
}
int solve2(int n) {
    int sum = 0;
    for (int i = 1; i <= sqrt(n); i++) {
        if (n % i == 0) {
            if (n / i == i) {
                sum += i * i;
            } else {
                sum += i * i + (n / i) * (n / i);
            }
        }
    }
    return sum;
}
int main() {
    int n;
    cin >> n;
    cout << solve2(solve1(n)) << " " << solve1((solve2(n))) << endl;
    return 0;
}

假设输入的n是绝对值不超过1000的整数,完成下面的判断题和单选题。
判断题
27. 如果输入的n为正整数,solve2函数的作用是计算n所有的因子的平方和( )
28. 第13~14行的作用是避免n的平方根因子i(或n/i)进入第16行而被计算两次( )
29. 如果输入的n为质数,solve2(n)的返回值为 n 2 + 1 n^2+1 n2+1( )

单选题
30. 如果输入的n为质数p的平方,那么solve2(n)的返回值为( )
A. p 2 + p + 1 p^2+p+1 p2+p+1 B. n 2 + n + 1 n^2+n+1 n2+n+1 C. n 2 + 1 n^2+1 n2+1 D. p 4 + 2 p 2 + 1 p^4+2p^2+1 p4+2p2+1
31. 当输入为正整数时,第一项减去第二项的差值一定( )
A. 大于0 B. 大于等于0且不一定大于0 C. 小于0 D. 小于等于0且不一定小于0
32. 当输入为"5"时,输出为( )
A. “651.625” B. “650.729” C. “651.676” D. “652.625”

【题目考点】

数学

  • 因数
  • 质数

【解题思路】

int solve1(int n) {
    return n * n;
}

solve1(n),求 n 2 n^2 n2

int solve2(int n) {
    int sum = 0;
    for (int i = 1; i <= sqrt(n); i++) {
        if (n % i == 0) {
            if (n / i == i) {
                sum += i * i;
            } else {
                sum += i * i + (n / i) * (n / i);
            }
        }
    }
    return sum;
}

i从1循环到 n \sqrt{n} n ,如果i是n的因数:

  • 如果n/i为i,即i为 n \sqrt{n} n ,此时i是n的因数,把 i 2 i^2 i2加到sum中。
  • 如果n/i不为i,此时i与n/i是n的因数,把 i 2 i^2 i2 ( n / i ) 2 (n/i)^2 (n/i)2加到sum中。

i从1循环到 n \sqrt{n} n ,取循环中取到的i或n/i可以遍历n的所有因数。
因此solve2(n)求的是n的所有因数的平方和。

int main() {
    int n;
    cin >> n;
    cout << solve2(solve1(n)) << " " << solve1((solve2(n))) << endl;
    return 0;
}

主函数中,第一个输出的solve2(solve1(n)) n 2 n^2 n2的所有因数的平方和。第二个输出的solve1((solve2(n)))是n的所有因数的平方和的平方。

判断题
27. 如果输入的n为正整数,solve2函数的作用是计算n所有的因子的平方和( )

答:T
上面已解释

  1. 第13~14行的作用是避免n的平方根因子i(或n/i)进入第16行而被计算两次( )

答:T
n的平方根因子,就是 n \sqrt{n} n n \sqrt{n} n 是整数),在计算因数的平方和时, ( n ) 2 (\sqrt{n})^2 (n )2只需要计算一次,需要进入第14行,而不能进入第16行被计算两次。

  1. 如果输入的n为质数,solve2(n)的返回值为 n 2 + 1 n^2+1 n2+1( )

答:T
质数n只有1和n两个因数,因数的平方和为 n 2 + 1 n^2+1 n2+1

单选题
30. 如果输入的n为质数p的平方,那么solve2(n)的返回值为( )
A. p 2 + p + 1 p^2+p+1 p2+p+1 B. n 2 + n + 1 n^2+n+1 n2+n+1 C. n 2 + 1 n^2+1 n2+1 D. p 4 + 2 p 2 + 1 p^4+2p^2+1 p4+2p2+1

答:B
n = p 2 n=p^2 n=p2,n的所有因数为: 1 , p , p 2 1, p, p^2 1,p,p2,因数的平方和为: 1 + p 2 + p 4 1+p^2+p^4 1+p2+p4或写为 1 + n + n 2 1+n+n^2 1+n+n2

  1. 当输入为正整数时,第一项减去第二项的差值一定( )
    A. 大于0 B. 大于等于0且不一定大于0 C. 小于0 D. 小于等于0且不一定小于0

答:D
如果输入的是n,第一项是 n 2 n^2 n2所有因数的平方和。第二项是n的所有因数的平方和的平方。
可以用特例法:
如果n是1,第一项是1,第二项是1,差是0。
如果n是2,第一项是4的所有因数1,2,4的平方和,是21。第二项是2的所有因数1,2的平方和5的平方为25。第一项减第二项小于0。
只有D符合条件。

  1. 当输入为"5"时,输出为( )
    A. “651 625” B. “650 729” C. “651 676” D. “652 625”

答:C
第一项是 5 2 = 25 5^2=25 52=25所有因数1,5,25的平方和: 1 2 + 5 2 + 2 5 2 = 651 1^2+5^2+25^2=651 12+52+252=651
第二项是5的所有因数1,5的平方和26的平方: 2 6 2 = 676 26^2=676 262=676

【答案】

  1. T
  2. T
  3. T
  4. B
  5. D
  6. C
更多推荐

基于Matlab实现自动泊车(垂直泊车)

自动泊车是一项非常有趣和实用的技术,它可以让车辆在没有人为干预的情况下自动停放在合适的位置上。在这篇文章中,我们将介绍如何使用Matlab实现自动泊车。首先,我们需要了解自动泊车的基本原理。自动泊车系统通常包括车辆、传感器和控制算法。传感器可以用来检测周围的环境,例如通过摄像头、超声波传感器或激光雷达来检测车辆周围的障

数据治理在数字化转型中的重要性

在当今数字化时代,企业的成功与否往往取决于它们对数据的处理和管理能力。数据治理作为数字化转型的关键组成部分,对于帮助企业有效管理和利用数据,实现业务增长和创新至关重要。本文将探讨为什么数字化转型必须进行数据治理,并介绍数据治理的几个关键优势。随着技术的进步和数字化转型的发展,大量的数据被不断产生和积累。这些数据代表了企

WPF中DataGrid控件绑定数据源

步骤创建数据源:首先,我们需要创建一个数据源,可以是一个集合(如List、ObservableCollection等),也可以是一个DataTable对象。数据源中的每个元素代表一行数据。设置DataGrid的ItemsSource属性:在XAML中,我们可以通过设置DataGrid的ItemsSource属性来将数据

视频汇聚/视频云存储/视频监控管理平台EasyCVR分发rtsp流起播慢优化步骤详解

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,也具备接入AI智能分析的能力,可拓

​LeetCode解法汇总2490. 回环句

目录链接:力扣编程题-解法汇总_分享+记录-CSDN博客GitHub同步刷题项目:https://github.com/September26/java-algorithms原题链接:力扣描述:句子是由单个空格分隔的一组单词,且不含前导或尾随空格。例如,"HelloWorld"、"HELLO"、"helloworldh

Docker从认识到实践再到底层原理(五)|Docker镜像

前言那么这里博主先安利一些干货满满的专栏了!首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。高质量博客汇总然后就是博主最近最花时间的一个专栏《Docker从认识到实践再到底层原理》希望大家多多关注!Docker从认识到实践再到底层原理第五章-镜像Docker镜像

飞行动力学 - 基础点摘要整理

飞行动力学-基础点摘要整理随着飞行动力学视频完整看了一遍,大体对飞行动力学有了基本的了解。从其根本原理和概念来看,并不是非常复杂,将经典力学用于飞机,进行了各种飞行场景的解析。当然,一遍也只能知道一个大概,不过对于从来没有接触过飞行动力学的我来说,是一个全新的角度对于经典力学的应用。顺便也对于之前整理的一些摘要或者说课

KMP,ACM集训

目录831.KMP字符串输入格式输出格式数据范围输入样例:输出样例:解析:KMP模板D-CyclicNacklace解析:KMP-next数组应用+循环字符串判断F-PowerStrings解析:KMP-next数组应用+循环字符串判断H-Countthestring解析:next数组理解J-StringProblem

软件设计师笔记系列(四)

😀前言随着技术的快速发展,软件已经成为我们日常生活中不可或缺的一部分。从智能手机应用到大型企业系统,软件都在为我们提供便利、增强效率和创造价值。然而,随之而来的是对软件质量的日益增长的关注。软件的质量不仅关乎其功能性和性能,还涉及其可靠性、使用性、可维护性和可移植性。为了更好地理解和评估软件的质量,我们需要一个结构化

day49:QT day2,信号与槽、对话框

一、完善登录框点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两个按钮ok和cancel,点击ok后,会清除密码框中的内容,继续进行登录;如果点击cancel按钮,则关闭界面。如果账号和密码匹配,则弹出信息对话框,给出提

比特币 ZK 赏金系列:第 1 部分——支付解密密钥

以前,我们使用零知识赏金(ZKB)来支付比特币上的数独解决方案。在本系列中,我们将使用ZKB来解决范围更广的更实际的问题。在第1部分中,我们应用ZKB来支付解密密钥。假设Alice使用对称密钥K加密她的文件。为了安全起见,她联系了在线备份服务Bob,以保留K的副本。她不想让Bob知道K,所以她使用门限秘密共享方案将K分

热文推荐