几个面试可能遇到的题目

来源:互联网 发布:python 书籍 知乎 编辑:程序博客网 时间:2024/04/29 14:02

说起来这几道题说难不难,但遇到了一时做不出也情有可原

/*斜三角打印5行范例#########*/void TrianglePrinting(){int line = 0;cout << "请输入行数: ";cin >> line;int up =  line % 2 == 0 ? line / 2 : line / 2 + 1;int down = line / 2 - 1;//上半部分for (int i = 0; i < up; ++i){for (int j = 0; j <= i; ++j){cout << "#";if (i == j)cout << "\n";}}//下半部分for (int i = down; i >= 0; --i){for (int j = 0; j <= i; ++j){cout << "#";if (i == j)cout << "\n";}}}

c++做的,控制台可以跑



/*菱形打印5行  #0 012 ###1 0123#####2 01234 ###  #*/void DiamondPrinting(){int line = 0;cout << "请输入行数(奇数): ";do{cin >> line;} while (line < 1 || line % 2 == 0);for (int i = 0; i < line; ++i){//得到本行#数量int jin = i <= line / 2 ? i * 2 + 1 : (line - i) * 2 - 1;//本行空格数int kong = (line - jin) / 2;for (int j = 0; j < kong; ++j)std::cout << " ";for (int j = 0; j < jin; ++j)std::cout << "#";std::cout << std::endl;}}

截图:



这一个第二种方法用C#应该可以实现,没有去具体操作

/*字符串处理##25#KN#变成####25KN并记录#个数*/string StringHandle_1(){string strHandle = "##25#KN#";int count = 0;//方法一:通过排序交换for (int i = 0; i < strHandle.length() - 1; ++i){for (int j = 0; j < strHandle.length() - i - 1; ++j){if (strHandle[j] != '#' && strHandle[j + 1] == '#'){char temp = strHandle[j];strHandle[j] = strHandle[j + 1];strHandle[j + 1] = temp;}}if (strHandle[i] == '#')count++;}//方法2:不排序方法,通过string处理,不过c++替换replace要传位置,不像C#可以直接替换,strHandle.replace('#', "");//      大致方法是:先得到#个数,再把#都换为"",再根据个数拼接结果,这里就不写了//printf("#有%d个,排序后为:\n", count);return strHandle;}








原创粉丝点击