(矿字号)高级语言程序设计 第四章 函数

第四章 函数

1.不同进制间的转换

【问题描述】设计一个函数toOcr(int n),实现把输入的一个十进制数转换为八进制数

【输入形式】 十进制数。

【输出形式】 与之对应的八进制数。

【样例输入】

126

【样例输出】

176

【样例说明】直接输出数据,不要有其他输出语句,如需测试请使用cerr。

#include<iostream>
using namespace std;
int main()
{
	int toOcr(int n);
	int i;
	cin>>i;
	toOcr(i);
	return 0;
} 
int toOcr(int n)
{
	if(n>=8)toOcr(n/8);
	cout<<n%8;
}

2.找出亲密对数

【问题描述】求数n之内的亲密对数。所谓“亲密对数”,即A的所有因子(包含1但不包含其本身)之和等于B,而B的所有因子之和等于A。

【输入形式】某个数字n。

【输出形式】此数字n之内的亲密对数。

【样例输入】

400

【样例输出】

220 284

【样例说明】输出结果每行输出一对亲密数,剔除重复的,按每行第一个数的大小排序。

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int A,B;
	int yinziSum(int num);
	for(A=1;A<n;A++)
	{
		B=yinziSum(A);
		if(yinziSum(B)==A&&A<B)cout<<A<<' '<<B<<endl;
	}
	return 0;		
 }
int yinziSum(int num)
{
	int i,sum=0,j;
	i=sqrt(num);
    for(j=1;j<=i;j++)
    {
    	if(num%j==0)sum+=(j+num/j);
    	else continue;
	}
	return (sum-num);	
 } 

3.在给定的数中从右边查找第K位数字

【问题描述】设计一个函数int digit(long n,int k),它返回整数n从右边开始第k个数字的值,若不存在第k个数字则返回-1。

【输入形式】 输入两个实参

【输出形式】 对应位的数值

【样例输入】

58693 3

【样例输出】

6

【样例说明】无

#include<iostream>
using namespace std;
int main()
{
	long n;
	int k;
	cin>>n>>k;
	int digit(long n,int k);
	cout<<digit(n,k);
	return 0;
}
int digit(long n,int k)
{
	int i,num;
	for(i=1;i<=k;i++)
	{
		if(!n)return -1;
		num=n%10;
		n=n/10;
	}
	return num;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值