北京航空航天大学 2009年复试上机题 解题报告

九度OJ 题目1166:迭代求立方根
时间限制:1 秒   内存限制:32 兆   特殊判题:否   提交:1378   解决:595
http://ac.jobdu.com/problem.php?pid=1166
题目描述:
立方根的逼近迭代方程是 y(n+1) = y(n)*2/3 + x/(3*y(n)*y(n)),其中y0=x.求给定的x经过n次迭代后立方根的值。
输入:
输入有多组数据。
每组一行,输入x n。
输出:
迭代n次后的立方根,double精度,保留小数点后面六位。
样例输入:
3000000 28
样例输出:
144.224957
#include<stdio.h>
main()
{
	int i, n, x;
	double m;
	while( scanf("%d%d",&x,&n)==2 ){
		for( m=x, i=0;i<n;i++ )
			m = m*2/3 + x/(3*m*m);
		printf("%.6f\n",m);
	}
}


九度OJ 题目1167:数组排序
时间限制:1 秒   内存限制:32 兆   特殊判题:否   提交:2077   解决:645
http://ac.jobdu.com/problem.php?pid=1167
题目描述:
输入一个数组的值,求出各个值从小到大排序后的次序。
输入:
输入有多组数据。
每组输入的第一个数为数组的长度n(1<=n<=10000),后面的数为数组中的值,以空格分割。
输出:
各输入的值按从小到大排列的次序(最后一个数字后面没有空格)。
样例输入:
4
-3 75 12 -3
样例输出:
1 3 2 1
#include <stdio.h>
#include <algorithm>
struct E{ int d, old, r; }a[10002];	//r=rank

bool CMP(E x, E y){return x.d<y.d;}
bool CMP2(E x, E y){return x.old<y.old;}
int main()
{
	int i, j, k, m, n;
	freopen("1167.txt","r",stdin);//
	while( scanf("%d",&n) == 1 ){
		for( i=0; i<n; i++ ){
			scanf("%d",&a[i].d);
			a[i].old = i;
		}
		std::sort(a,a+n,CMP);
		a[0].r = 1;
		for( i=1,j=1; i<n; i++ ){
			if(a[i].d==a[i-1].d) a[i].r = j;
			else a[i].r = ++j;
		}
			
		std::sort(a,a+n,CMP2);
		
		printf("%d",a[0].r);
		for( i=1; i<n; i++ )
			printf(" %d",a[i].r);
		puts("");
		
	}
	return 0;
}


九度OJ 题目1168:字符串的查找删除
时间限制:1 秒   内存限制:32 兆   特殊判题:否   提交:1451   解决:483
http://ac.jobdu.com/problem.php?pid=1168
题目描述:
给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。
输入:
输入只有1组数据。
输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。
输出:
删除输入的短字符串(不区分大小写)并去掉空格,输出。
样例输入:
in
#include 
int main()
{


printf(" Hi ");
}
样例输出:
#clude
tma()
{


prtf("Hi");
}
提示:
注:将字符串中的In、IN、iN、in删除。
#include <fstream>
#include <string>
#include <iostream>
using namespace std;

int main()
{
	int i, n, l;
	ifstream cin("jobdu_104.txt");//

	string s, t;
	cin >> s;
	l = s.length();
	//getchar();
	getline(cin,t);
	while( getline(cin,t) ){
		n = t.find(s);
		while( n != -1 ){
			t.erase(n,l);
			n = t.find(s);
		}
		n = t.length();
		for( i=0; i<n; i++)
			if( t[i] != ' ') cout << t[i];
		cout << endl;
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值