首页 > 编程语言 >北科程序设计A第七周上机

北科程序设计A第七周上机

时间:2024-11-14 13:18:31浏览次数:3  
标签:输出 return 上机 int 样例 北科 格式 程序设计 输入

目录

1. 分段函数

 2. 程序改错:字符输出

 3. 递归求斐波那契数列的第n项。

 4. 将十进制转换二进制

 5. 数字反射

 6. 求1到n的立方和

7. 走格子(递归)

8. 汉诺塔问题

 9. 验证歌德巴赫猜想

1. 分段函数

【问题描述】有一个定义在自然数上的函数 f(x) 定义如下:
               若 x<5 , 则 f(x) = x;
               若 5<=x<15, 则 f(x) = x+6;
               若 x>=15, 则 f(x) = x-6。
              试编写该函数,输入x值,返回相应的f(x)值。
【输入形式】

  一行一个数表示自然数x。
【输出形式】

  一行表示计算结果f(x),若输入的数据不合法(如:负整数),输出“illegal input”。(不带引号)
【样例输入】

  4
【样例输出】

  4

示例代码:

#include <iostream>
using namespace std;
int function(int x)
{
	if(x<5) return x;
	else if(x<15) return x+6;
	else return x-6;
}
int main()
{
	int num;
	cin>>num;
	if (num<=0) cout<<"illegal input"<<endl;
	else cout<<function(num)<<endl; 
	return 0;
}

 2. 程序改错:字符输出

改正程序,使程序运行正确。

下面程序的功能是显示由用户输入的字符。

实例输出:

Enter a character: g

You just entered the character : g

#include <iostream>
using namespace std;
void f4 ( int c );
int main ()
{
    char myChar;
    cout << "Enter a character:";
    cin >> myChar;
    f4 ( myChar )
    return 0;

}
void f4 ( char c )
{
    cout <<"\nYou just entered the character : " << myChar << endl;

    return myChar;

}

 示例代码:

#include <iostream>
using namespace std;
char f4 ( char c );
int main ()
{
    char myChar;
    cout << "Enter a character:";
    cin >> myChar;
    f4 ( myChar ); 
    return 0;

}
char f4 ( char c )
{
    cout <<"\nYou just entered the character : " << c << endl;

    return c;

}

 3. 递归求斐波那契数列的第n项。

【题目描述】

利用递归求斐波那契数列的第n项。

斐波那契数列规律:    0,1,1,2,3,5,8,13……

【输入格式】

一行一个整数 n

【输出格式】

一行一个整数表示斐波那契额数列的第 n 项。

【输入样例】
   7

【输出样例】
   8    

 示例代码:

#include <iostream>
using namespace std;
int Fibonacci(int n)
{
	if (n==1) return 0;
	else if (n==2) return 1;
	else return Fibonacci(n-2)+Fibonacci(n-1);
} 
int main()
{
	int x;
	cin>>x;
	cout<<Fibonacci(x)<<endl;
	return 0;
}

 4. 将十进制转换二进制

【题目描述】

输入1个正整数n(n>0),将其转换为二进制后输出。    

【输入格式】

一行一个正整数 n

【输出格式】

一行一个二进制数表示结果

【样例输入】
   15
【样例输出】
   1111    

 示例代码:

#include <iostream>
using namespace std;
int exchange (int n)
{
	int num[10],t=0;
	do
	{
		num[t]=n%2;
		n/=2;
		t++;
	}while (n);//二进制拆分 
	for (int j=t-1;j>=0;j--)
	{
		cout<<num[j];//输出二进制数 
	}
	return 0;
}
int main()
{
	int x;
	cin>>x;
	exchange(x);
	return 0;
}

 5. 数字反射

【题目描述】

编写一个函数,接收一个整数值,返回这个数中数字逆序后的结果值。

【输入格式】

一行一个整数

【输出格式】

一行一个整数表示结果

【输入样例】

7631

【输出样例】

1367

  示例代码:

#include <iostream>
using namespace std;
int change(int n)
{
	int num[100];
	int t=0;
	do
	{
		
		num[t]=n%10;
		n/=10;
		t++;
	}while(n);//拆分各位数 
	for (int i=0;i<=t-1;i++)
	{
		cout<<num[i];//逆序输出 
	}
	return 0;
}
int main()
{
	int x;
	cin>>x;
	change(x);
	return 0;
}

 6. 求1到n的立方和

【题目描述】

编写程序求1*1*1  + 2*2*2 + 3*3*3 + ... +  n*n*n的结果,要求用递归函数来完成。

说明:该公式的结果可保存在int型变量中,无需考虑超出int保存范围的情况。    

【输入格式】

一行一个整数 n

【输出格式】

一行一个整数表示答案

【输入样例】
   3
【输出样例】
   36    

  示例代码:

#include <iostream>
using namespace std;
int third(int n)//定义一个求立方和的函数 
{
	if (n==1) return 1;
	else return third(n-1)+n*n*n;//递归调用 
}
int main()
{
	int x;
	cin>>x;
	cout<<third(x)<<endl;
	return 0;
}

7. 走格子(递归)

【题目描述】

现有一个 m*n 的网格,从最左上角出发,每次只能向右或者向下移动一格,问有多少种不同的方法可以到达最右下角的格子?

【输入格式】

一行两个整数表示 m,n

【输出格式】

一行一个整数表示答案

【输入样例】

2 2

【输出样例】

2

 示例代码:

#include <iostream>
using namespace std;
//这是一个非常有趣的问题,假设格子的坐标为(a,b);
//假设从其他地方走到格子的方案数为count(a,b),则有 
//count(a,b)=count(a-1,b)+count(a,b-1)->这是递归方程 
int count(int x,int y)//定义一个函数解决格子问题 
{
	if ((x==0)||(y==0)) return 0;//排除不符合实际的情况 
	else if ((x==1)&&(y==1)) return 0;//初始坐标方案数为0 
	else if (((x==1)&&(y==2))||((x==2)&&(y==1))) return 1;//走到(1,2)或(2,1)的方案数为1 
	else return count(x-1,y)+count(x,y-1);
}
int main()
{
	int m,n;
	cin>>m>>n;
	cout<<count(m,n)<<endl;
	return 0;
} 

8. 汉诺塔问题

【题目描述】

有三座塔A,B,C,开始时A上有n个盘子,盘子大小不等,大在下小在上。要将盘子从A座移到C座,每次只能移一个,并且在移动的过程中始终保持大在下小在上。

输入盘子的数量n,输出移动的步骤。

(提示:利用递归完成)

【输入格式】

一行一个整数 n

【输出格式】

输出若干行表示每次移动的步骤

【样例输入】
   2
【样例输出】
   A to B
   A to C
   B to C    

 示例代码:

#include <iostream>
using namespace std;
void move(int n,char A,char B,char C)
{
	if (n==1)
	   cout<<A<<" to "<<C<<endl;
	else
	{
		move(n-1,A,C,B);
		cout<<A<<" to "<<C<<endl;
		move(n-1,B,A,C);
	}
}
int main()
{
	int m;
	cin>>m;
	move(m,'A','B','C');
	return 0;
}

 9. 验证歌德巴赫猜想

【题目描述】

哥德巴赫猜想:一个大于2的偶数是两个素数的和。

编写程序验证哥德巴赫猜想,输入一个大于2但是小于等于500的偶数,如果它能表示成为2个素数的和,则输出所有的可能情况(输出格式为 大素数+小素数=偶数).

【输入格式】

一行一个符合数据范围的偶数

【输出格式】

若干行表示所有表示的可能情况(注意空格分隔)

【输入样例】

24

【输出样例】

19 + 5 =24

17 + 7 =24

13 + 11 =24

示例代码:

#include <iostream>
using namespace std;
int if_prime(int n)//定义一个判断素数的函数 
{
	int flag=1;
	for (int i=2;i*i<=n;i++)
	{
		if (n%i==0)
		{
			flag=0;
		}
	}
	return flag;
}
int main()
{
	int m;
	cin>>m;
	for (int i=2;i*2<=m;i++)//循环次数可以缩短一半,只需要判断一边就行 
	{
		if ((if_prime(i))&&(if_prime(m-i)))//如果满足哥德巴赫猜想 
		{
		    cout<<(m-i)<<" + "<<i<<" ="<<m<<endl;
		}
	}
	return 0;
} 

标签:输出,return,上机,int,样例,北科,格式,程序设计,输入
From: https://blog.csdn.net/m0_66717194/article/details/143757713

相关文章

  • hnuJava程序设计基础训练-2024
    1. DNA序列(Java)【问题描述】 一个DNA序列由A/C/G/T四个字母的排列组合组成。G和C的比例(定义为GC-Ratio)是序列中G和C两个字母的总的出现次数除以总的字母数目(也就是序列长度)。在基因工程中,这个比例非常重要。因为高的GC-Ratio可能是基因的起始点。给定一个很长的DNA序列,以......
  • 【SSM框架-毕业程序设计】-166-基于ssm线上花店管理系统
    系列文章【SSM框架-毕业程序设计】166-基于ssm线上花店管理系统文章目录系列文章【SSM框架-毕业程序设计】一、项目描述二、运行环境三、项目技术四、主要功能五、项目截图六、获取源码一、项目描述线上花店管理系统是基于java编程语言,ssm框架,mysql数据库开发的......
  • 用函数实现模块化程序设计四
    数组作为函数参数调用有参函数时,需要提供实参,实参可以是常量、变量或表达式数组元素的作用与变量相当,一般来说,凡是变量可以出现的地方,都可以用数组元素代替,因此,数组元素也可以用作函数实参,其用法与变量相同,向形参船体数组元素的值。此外,数组名也可以作实参和形参,传递的是数组第......
  • 第十届中国大学生程序设计竞赛 重庆站(CCPC 2024 Chongqing Site)
    B.osu!mania按照题目的公式进行计算,注意四舍五入的精度问题。#include<bits/stdc++.h>usingnamespacestd;usingi32=int32_t;usingi64=longlong;usingldb=longdouble;usingvi=vector<int>;usingpii=pair<int,int>;voidsolve(){ intppmax;......
  • Java后台微信在线教育视频点播学习小程序设计与实现(论文+作品)
     博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育、辅导。所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩,提供核心代码讲解,答辩指导。项目配有对应开发......
  • 【精品毕设推荐】基于微信小程序的外籍人员管理系统小程序设计与实现
    点击下载原文及代码,可辅助在本地配置运行......
  • CCPC(2024年中国大学生程序设计竞赛女生专场)
    #include<bits/stdc++.h>#defineendl'\n'#defineintllusingll=longlong;typedefunsignedlonglongull;usingnamespacestd;voidGordenGhost();signedmain(){#ifdefGordenfreopen("in.txt","rt",stdi......
  • 盒子(2024年中国大学生程序设计竞赛女生专场)
    #include<bits/stdc++.h>#defineendl'\n'#defineintllusingll=longlong;typedefunsignedlonglongull;usingnamespacestd;voidGordenGhost();signedmain(){#ifdefGordenfreopen("in.txt","rt",stdi......
  • 上机实验:数据准备与模型评估
    1、实验目的熟悉Python的基本操作,掌握对数据集的读写实现、对模型性能的评估实现的能力;加深对训练集、测试集、N折交叉验证、模型评估标准的理解。2、实验内容(1)利用pandas库从本地读取iris数据集;(2)从scikit-learn库中直接加载iris数据集;(3)实现五折交叉验证进行模型......
  • PHP后台微信求职招聘小程序设计与实现(论文+作品)
     博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育、辅导。所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩,提供核心代码讲解,答辩指导。项目配有对应开发......