#4421. 2024csp-j 完善程序
2024csp-j 完善程序
2024csp-j 完善程序
(单选题,每小题 3 分,共计 30 分)
完善程序(一)
- (判断平方数) 问题:给定一个正整数 n,判断这个数 是不是完全平方数,即存在一个正 整数 x 使得 x 的平方等于 n 试补全程序。
#include<iostream>
#include<vector>
using namespace std;
bool isSquare(int num){
int i = (1) ;
int bound = (2) ;
for(;i<=bound;++i){
if( (3) ){
return (4) ;
}
}
return (5) ;
}
int main(){
int n;
cin>>n;
if(isSquare(n)){
cout<<n<<" is a Square number"<<endl;
}else{
cout<<n<<" is not a Square number"<<endl;
}
- ①处应填( ) {{ select(33) }}
1234
- ②处应填( ) {{ select(34) }}
(int)floor(sqrt(num)-1)(int)floor(sqrt(num))floor(sqrt(num/2))-1floor(sqrt(num/2))
- ③处应填( ) {{ select(35) }}
num=2*inum==2*inum=i*inum==i*i
- ④处应填( ) {{ select(36) }}
num=2*inum==2*itruefalse
- ⑤处应填( ) {{ select(37) }}
num=i*inum!=2*itruefalse
完善程序(二)
(汉诺塔问题)给定三根柱子,分别标记为 A、B 和 C。初始状态下,柱子 A 上有若干个 圆盘,这些圆盘从上到下按从小到大的顺序排列。任务是将这些圆盘全部移到柱子 c 上,且 必须保持原有顺序不变。在移动过程中,需要遵守以不规则: 1.只能从一根柱子的顶部取出圆盘,并将其放入另一根柱子的顶部。 2.每次只能移动一个圆盘 3.小圆盘必须始终在大圆盘之上。 试补全程序。
#include <bits/stdc++.h>
using namespace std;
void move(char src, char tgt) {
cout << "从柱子" << src << "挪到柱子上" << tgt << endl;
}
void dfs(int i, char src, char tmp, char tgt) {
if(i == (1) ) {
move( (2) );
return;
}
dfs(i-1, (3) );
move(src, tgt);
dfs( (5) , (4) );
}
int main() {
int n;
cin >> n;
dfs(n, 'A', 'B', 'C');
}
- ①处应填( ) {{ select(38) }}
0123
- ②处应填( ) {{ select(39) }}
src,tmpsrc,tgttmp,tgttgt,tmp
- ③处应填( ) {{ select(40) }}
src, tmp, tgtsrc, tgt, tmptgt, tmp, srctgt, src, tmp
- ④处应填( ) {{ select(41) }}
src, tmp, tgttmp, src, tgtsrc, tgt, tmptgt, src, tmp
- ⑤处应填( ) {{ select(42) }}
01i-1i