注意:
文件为CPP,编译器为VS2005。
最好新建空项目,只提交一个源文件,且所有程序仅能存在于一个源文件,注意选择文件后缀。
本程序没有考虑变量存储内存优化问题,如有必要,请自己重新设计子函数,设计数值传参和指针传参。(面试时,“良好的编程风格”可能要求这些。。)
程序提交时,只允许按照样例格式输入输出,不许添加任何多余的输入输出及操作,下述程序中调试已用#define DEBUG说明,提交时注释掉此处。
简单题(60‘)
题目:(大体上是这样的)
输入一个数字(>=10,即至少是个两位数),如果是个n位数,则去掉其第一位w,输出后n-1位。
例如:
输入 25
输出 5
(注:原题目我看了三遍,才读懂说的是神么。。。)
因为在题目中已经限定了至少为两位数,且是数字,所以测试数据肯定是至少2位的数字,在程序中就不必特别做判断了。
/************************************************
Copyright (c) 2013-10-03, binzhouweichao@163.com
*************************************************/
#include <iostream> //输入输出流操作
#include <string> //string类,不是CString
#define DEBUG //调试用,最后提交时将此处注释掉
using namespace std; //标准库命名空间
int main()
{
string str; //声明输入的字符串
cin >> str; //输入的字符串放入str
/*
注:标准输入输出,以字符串的形式,并以空格或者回车作为结尾
如果是int,只能存放一个字符,需要一个int数组或者其他操作
*/
size_t len = str.length(); //输入的字符串的长度
string str2; //声明输出的字符串,默认初始化为空字符串
for(size_t i=1; i<len; i++) //从第二个开始,也就是去掉首位开始
{
str2 = str2 + str[i]; //string字符串连接
}
cout << str2; //输出
#ifdef DEBUG
cout << endl;
system("pause");
#endif
return 0;
}
中级题(100’)
题目:(应该是这样的)
某种货币,币值有1、5、10、50、100五种,输入一个金额(数字),输出使用这五种币值拼出此金额所用的最小的张数。
如:
输入 67
输出 5
即:67 = 50 + 10 + 5 + 1 + 1
/************************************************
Copyright (c) 2013-10-03, binzhouweichao@163.com
*************************************************/
#include <iostream> //输入输出流操作
#include <string> //string类
#define DEBUG //调试用,提交时注释掉此项
using namespace std; //标准库命名空间
//如有必要,可以对下述函数段做子函数处理
int main()
{
int money; //限定金额的最大值为int最大值,应该够用了。。
string str; //声明输入的字符串
cin >> str; //输入到str
money = atoi(str.c_str()); //输入的字符串转换成int
/*
注:因为atoi返回int,若非要较真做unsigned int转换,可以使用stringstream流操作
*/
int cnt = 0; //张数计数器,初始化为0
int divisor[5] = {100, 50, 10, 5, 1}; //币种,从大往小排,作为除数
int remainder = money; //余数,也就是金额缓存,每个循环剩下的金额,下个循环的起始金额,初始化为money
int quotient; //商,也就是每个循环需要的张数
for(int i=0; i<5; i++) //循环5次
{
quotient = remainder / divisor[i]; //此次循环所需张数
cnt = cnt + quotient; //张数累积
remainder = remainder % divisor[i]; //下个循环的金额
}
cout << cnt; //输出张数
#ifdef DEBUG
cout << endl;
system("pause");
#endif
return 0;
}
高级题(160’)