标签:除法 结果 大于 str out 十进制 har input 读取
今天多做一些杂题练习一下。
第一题:
读取这一行字符串,每个字符串长度小于80个字符
对于每组数据,输出每行字符串的加密字符串。
Hello! How are you!
Ifmmp! Ipx bsf zpv!
// // Created by 陈平 on 2018/4/17. // #include <iostream> #include "string.h" #include <string.h> using namespace std; int main(){ string test; getline(cin,test); int i = 0; while (test[i]!=‘\0‘) { if(test[i]<=‘z‘&&test[i]>=‘a‘ ) cout<<char((test[i]-‘a‘+1)%26+‘a‘); else if (test[i]>=‘A‘&& test[i]<=‘Z‘) cout<<char((test[i]-‘A‘+1)%26+‘A‘); else cout<<test[i]; i++; } cout<<endl; return 0; }
这道题坑在使用getline上,不然他会遇到空格就跳过了。
多案例输入,每个案例的输入第一行为一个整数N,表示小白鼠的数目。 下面有N行,每行是一只白鼠的信息。第一个为不大于100的正整数,表示白鼠的重量,;第二个为字符串,表示白鼠的帽子颜色,字符串长度不超过10个字符。 注意:白鼠的重量各不相同。
每个案例按照白鼠的重量从大到小的顺序输出白鼠的帽子颜色。
3 30 red 50 blue 40 green
blue green red
// // Created by 陈平 on 2018/4/17. // #include <iostream> #include "string.h" #include <string.h> #include "algorithm" using namespace std; struct E{ int num; char color[1000]; }; bool cmp(E a,E b){ return a.num>b.num; } int main(){ int n; while (scanf("%d",&n)!=EOF){ E buf[101]; for (int i = 0; i < n; ++i) { cin>>buf[i].num>>buf[i].color; } sort(buf,buf+n,cmp); for (int j = 0; j <n ; ++j) { cout<<buf[j].color<<endl; } } return 0; }
若干个非负整数c,c的位数<=30 每行一个c
每一个c的结果占一行 1) 若存在满足 c%k == 0 的k,输出所有这样的k,中间用空格隔开,最后一个k后面没有空格。 2) 若没有这样的k则输出"none" 注意整数溢出问题 不要对-1进行计算
30 72 13
2 3 5 6 2 3 4 6 8 9 none
// // Created by 陈平 on 2018/4/17. // #include <iostream> #include "string.h" #include <string.h> #include "algorithm" using namespace std; int main(){ char input[50]; while (scanf("%s",input)!=EOF){ int noflag=0; int len = strlen(input); if(input[0]==‘-‘) continue; int flag =1; for (int k = 2; k <=9 ; ++k) { int mid=0; for (int i = 0; i < len; ++i) { int cut = input[i] - ‘0‘; mid = (mid*10+cut)%k; } if(mid==0) { noflag = 1; if(flag==1) {cout<<k; flag=0;} else{ cout<<" "<<k; } } } if(noflag==0) cout<<"none"; cout<<endl; } return 0; }
这道题目关联高精度题目,所以我们自定义了除法方法去计算。关键一步在于mid的那一行,处理好这一行就ok。
标签:除法 结果 大于 str out 十进制 har input 读取
原文地址:https://www.cnblogs.com/Pinging/p/8950454.html