前段时间潜心学习算法,同时在近期刷了不少oj题目,这里暂且做一个总结与记录,因为比较花时间,分几天上传吧。话不多说,上代码!通关考题快刷完后面会汇总一篇题解(也许吧
There are many character strings.You should judge which one is the palindrome .
There are including several test cases.Every case occupies one line.Every line has one character string .the end line is 0,and this line needn’t to be processed.
If the Character string is palindrome output “Yes”,else “No”.
12321 abbab 0
Yes No
对于英文题目往往需要先分析一下题意,本题大意就是:
判断输入的字符串是不是回文字符串。
非常简单,只需要两个指针分别从头尾遍历,然后 判断是否一直匹配,如果中间有不匹配的直接break即可
下面附上代码
#include<iostream> #include<cstring> using namespace std; int main() { string str; while(cin >> str) { if(str == "0") return 0; int len = str.size(); int i; bool tf = true; for(i = 0; i < (len + 1)/2; i ++) { if(str[i] != str[len - 1 - i]) { cout << "No" <<endl; tf = false; break; } } if(tf) cout << "Yes" <<endl; } return 0; }
小明从老师那里拿到了两组数据(int就可以),但是呢,都是乱码的,现在要把这两组数据合并成一组有序的数据归还给老师。但是他不会做。希望你能帮助他。
现在就看你的啦。
有好几组测试数据。每一组数据包括两行。
第一行的第一个数表示第一组数据的个数N(0<=N<=1000)。后面N个数表示第一组数据。
第二行第一个数表示第二组数据的个数M(0<=M<=1000)。后面M个数表示第二组数据。
对于每一个测试样例。输出合并后的数据。
两个不同的数据之间用空格隔开。
每两个不同的测试样例之间用空行表示。
本题也是非常简单只需要三个数组就可以实现,分别用于读入第一组数据和第二组数据,最后存入第三个数组中,sort一下就好。特别注意,使用sort函数需要头文件#include<algorithm>,下面附上代码
#include<iostream> #include<algorithm> using namespace std; const int N = 2010; int n, m; int q[N]; int main() { while(cin >> n) { for (int i = 0; i < n; i++) scanf("%d", &q[i]); cin >> m; for (int i = n; i < m+n; i++) scanf("%d", &q[i]); sort(q, q + m + n ); for (int i = 0; i < m + n; i++) { if(i != 0) cout << ' '; cout << q[i]; } cout << endl << endl; } return 0; }
There are N lights in a empty room,numbering from 1 to N.The first person should turn all the lights on,and the second one should press those switches whose number is the multiple of 2 (those light will be turned off).And the third person should press those switches whose number is the multiple of 3 (the light on will be turned off,and the light off will be turned on).and so on.there K persons.
As a result ,which light will be on finally?
Output all the numbers when the light is on.
There is a space between two different numbers.And there is a blank line between two different case.
本题依旧是一道英文题,大意就是对于第i个人,总是按一次i的倍数的开关,特别的,第一个会按所有灯的开关,此时灯全部打开,开始时候灯都是灭的。
本题可以通过bool类型的数组来表示灯的变换因为符号!可以很好地表示按一次开关,下面附上代码:
#include<iostream> using namespace std; const int N = 1010; bool lgt[N]; int main() { int n, k; while(cin >> n) { cin >> k; for(int i = 1; i <= n; i ++) lgt[i] = true; for(int i = 2; i <= k; i ++) { for(int j = 1; j <= n; j ++) { if(j % i == 0) lgt[j] = !lgt[j]; } } bool is_find = false; for(int i = 1; i <= n; i ++ ) { if(lgt[i]) { if(is_find) cout << ' '; cout << i; is_find = true; } } cout << endl << endl; } return 0; }
华氏温度和摄氏温度是目前比较常用的温度表示单位,如英国、美国、加拿大、澳大利亚和印度等国多用华氏温度;而世界科技界和工农业生产中,以及我国、法国等国家则多用摄氏温度。
我们知道,水的冰点是0°C或32°F,沸点是100°C或212°F。设计一个程序,将摄氏温度换算为华氏温度。
输入含有一些整数n(-100≤n≤500),表示摄氏温度,若n为999表示处理结束。
分别计算摄氏温度n所对应的华氏温度值(保留一位小数),每个输出占一行。
非常简单的水体,一次函数问题罢了OVO
#include<iostream> using namespace std; int n,m; double change(int x) { double k = 1.8; double b = 32; return k * x + b; } int main() { for(int i=0;;i++) { cin >> n; if (n == 999) break; printf("%.1f\n", change(n)); } }
原文链接:https://blog.csdn.net/m0_74304761/article/details/129676689?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169900313716800188526008%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=169900313716800188526008&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-11-129676689-null-null.nonecase&utm_term=%E6%BE%B3%E6%B4%B22023