南京理工2006年入学机试练习

1.输入一个整数,如2,输入项数如4,计算下式的值:2+22+222+2222

#include <iostream>
#include <bits/stdc++.h>//保证scanf 和printf? 
using namespace std;//保证cin,cout的有效进行 

int main() {
	while(1){
	
	int a,b,sum,temp,i,j;
	cin>>a>>b;
	//scanf("%d",a);为啥不对 ,,,忘记加&
          //&a、&b、&c 中的 & 是地址运算符,分别获得这三个变量的内存地址
	//printf("%d",a);烦人 
	sum=0;
	temp=0;
	for(i=1;i<=b;i++){
		//temp=0;
		//for(j=1;j<=i;j++){	
			temp=temp*10+a;
			if(i<b)
				cout<<temp<<"+";
			else
				cout<<temp<<"="; 
		//}			 
		sum=temp+sum;
	}
	cout<<sum<<endl;//别忘了endl; 
}
	return 0;
}

2.根据公式求e的值,e=1+1/1!+1/2!+1/3!+1/4!+1/n!(精确度为10^-6)

1e-6表示1乘以10的负6次方

因为忘记给temp赋初值

南京理工2006年入学机试练习

#include <bits/stdc++.h>
using namespace std;
int main(){
	double sum=1.0,temp=1.0;//temp记得赋初值 
	for(int i=1;i<=1000000;i++){
		temp=temp*i;
		sum=sum+1.0/temp;
	}
	printf("%.6f",sum);//%7.2f是输出小数点后2位,数据位宽是7位
	return 0;
}

3.一篮鸡蛋数目除2余1,除3余2,除4余3,除5余4,问有多少个鸡蛋

#include <iostream>
using namespace std;

int main() {
	int n=0;
	while(++n){//注意这里不能是n++,0表示false 
		//cout<<n;
		if(n%2==1&&n%3==2&&n%4==3&&n%5==4){
			cout<<n;
			//break;
		}
	} 
	return 0;
}

4.将一个整数转换成16进制输出(不得使用系统函数)

#include <iostream>
using namespace std;

int main() {
	//cout<<(3*16*16+33)=801;
	int a[18];
	int j=0,c=1,x;
	cin>>x;
	while(x>=1){
		a[j++]=x%16;
		x=x/16;
	}
	//cout<<j<<endl;
	while(j>=1){
		if(a[--j]==10)
			cout<<'A';
		else if(a[j]==11)
			cout<<'B';
		else if(a[j]==12)
			cout<<'C';
		else if(a[j]==13)
			cout<<'D';
		else if(a[j]==14)
			cout<<'E';
		else if(a[j]==15)
			cout<<'F';
		else
			cout<<a[j];
	}
	return 0;
}

5.打印100-999间的回文数(正读反读相同,如101,111,121....)

#include <iostream>
using namespace std;

int main() {
	int a[5];
	for(int i=100;i<=999;i++){
		if(i/100==i%10)
			cout<<i<<' ';
	}
	return 0;
}

6.

打印九九表:

1*1=1

1*2=2 2* 2=4

1*3=3 2*3=6 3*3=9

#include <iostream>
using namespace std;

int main() {
	int i,j;
	for(i=1;i<=9;i++){
		for(j=1;j<=i;j++){
			cout<<j<<'*'<<i<<'='<<j*i<<"\t";//t保证间距相同 
		}
		cout<<endl;
	}
	return 0;
}

7.将一个数(XYZ) 的个位移到首位(ZXY) 后,该数字将是原来的4倍,编程求满足这个条件的最小数(输出结果为102564)。

#include <iostream>
#include <math.h>
using namespace std;

int main() {
	int i=1;
	while(i++){
		int x=i;
		int len=0;
		while(x>=1){
			x=x/10;
			len++;
		}
		if(i*4==(i%10*int(pow(10,len-1))+i/10)){
		    cout<<i;
			break;
		}	
	}
	return 0;
}

8.A,B,C,D,E,F,G分别代表1000,500,100,50,10,5,1,给定一个字符串如ABC,求它的值(ABC=1000+500+100)

#include <iostream>
#include <string.h>
using namespace std;

int main() {
	char a[10];
	cin>>a;
	int sum=0;
	for(int i=0;a[i]!='\0';i++){
		if(a[i]=='A')
			sum=sum+1000;
		else if(a[i]=='B')
			sum=sum+500;
		else if(a[i]=='C')
			sum=sum+100;
		else if(a[i]=='D')
			sum=sum+50;
		else if(a[i]=='E')
			sum=sum+10;
		else if(a[i]=='F')
			sum=sum+5;
		else if(a[i]=='G')
			sum=sum+1;
	}
	cout<<sum<<endl;
	return 0;
}

 

上一篇:【高并发】ThreadLocal学会了这些,你也能和面试官扯皮了!


下一篇:暖冬限定!DevExpress WinForms冬季款皮肤/主题全新上线