#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
cin>>s;
int w=0;
int h=0;
for(int i=0;i<s.size();i++){
if(s[i]=='b'||s[i+1]=='o'||s[i+2]=='y'){
w++;
}
if(s[i]=='g'||s[i+1]=='i'||s[i+2]=='r'||s[i+3]=='l'){
h++;
}
}
cout<<w<<endl;
cout<<h<<endl;
return 0;
任意一个b,o,y,g,i,r,l,都有一个相应的单词
p1957
#include<bits/stdc++.h>
using namespace std;
void sss(string s,int x,int y){
int res=0;
if(s=="a"){
res=x+y;
printf("%d+%d=%d\n",x,y,res);
}
else if(s=="b"){
res=x-y;
printf("%d-%d=%d\n",x,y,res);
}
else if(s=="c"){
res=x*y;
printf("%d*%d=%d\n",x,y,res);
}
string str=to_string(x)+"+"+to_string(y)+"="+to_string(res);
int len=str.size();
printf("%d\n",len);
}
int main(){
int n;
scanf("%d",&n);
string tem;
int x,y;
for(int i=1;i<=n;i++){
string s;
cin>>s;
if(s=="a"||s=="b"||s=="c"){
tem=s;
scanf("%d %d",&x,&y);
}
else{
x=stoi(s);
scanf("%d",&y);
}
sss(tem,x,y);
}
return 0;
}
b2127
#include<bits/stdc++.h>
using namespace std;
int n;
int wm(int e){
int h=0;
for(int i=1;i<e;i++){
if(e%i == 0){
h+=i;
}
}
return h;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
if(wm(i) == i) cout<<i<<endl;
}
return 0;
}
函数使用错误
p1914
#include<bits/stdc++.h>
using namespace std;
char ch[55];
int main(){
int n;
scanf("%d",&n);
cin>>ch;
int h=n%26;
int l=strlen(ch);
for(int i=0;i<l;i++){
if((ch[i]+h)>'z'){
ch[i]=ch[i]-26+h;
}
else{
ch[i]+=h;
}
}
cout<<ch;
return 0;
}
p1055
#include<bits/stdc++.h>
using namespace std;
char str[18];
int main(){
cin>>str;
int index = 1;
int sum = 0;
for(int i=0; i<=10; i++){
if(str[i]!='-'){
sum += (str[i]-'0') * index; index++;
}
}
char ch;
sum%=11;
if(sum==10) ch='X';
else ch=sum+'0';
if(ch==str[12]) printf("Right\n");
else{ str[12] = ch;
printf("%s\n", str);
}
return 0;
}
ISBN码没有正确转化成为int类型
B3798
#include<bits/stdc++.h>
using namespace std;
struct student{
string name;
double diff;
};
student stu[100002];
int score[22];
bool cmp(student s1,student s2){
if(s1.diff!=s2.diff){
return s1.diff>s2.diff;
}
return s1.name<s2.name;
}
void show(int n){
int num=min(n,20);
for(int i=1;i<=num;i++){
cout<<stu[i].name<<endl;
}
}
int main(){
int m,n;
cin>>m>>n;
for(int i=1;i<=n;i++){
cin>>stu[i].name;
memset(score,0,sizeof(score));
double sum=0;
for(int j=1; j<=m; j++){
scanf("%d", &score[j]);
sum+=score[j];
}
double ave=sum/m;
double diff_sum=0;
for(int j=1;j<=m;j++){
diff_sum+=pow(score[j]-ave,2);
}
stu[i].diff=sqrt(diff_sum/n);
}
sort(stu+1,stu+1+n,cmp);
show(n);
return 0;
}
没有理解题意
p1582
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,k,ans=0;
scanf("%d%d", &n, &k);
while(__builtin_popcount(n)>k) ans+=n&-n,n+=n&-n;
printf("%d",ans);
return 0;
}
__builtin_popcount求1的个数
p1106
#include<bits/stdc++.h>
using namespace std;
string str;
int k;
int main(){
cin>>str;
scanf("%d",&k);
int lens=str.size();
while(k--){
for(int i=0;i<=(lens-2);i++){
if(str[i]>str[i+1]){
for(int j=i;j<=(lens-2);j++){
str[j]=str[j+1];
}
break;
}
}
lens--;
}
int begin=0;
while(str[begin]=='0'&&begin<lens){
begin++;
}
if(begin==lens) cout<<0;
else{
for(int i=begin;i<lens;i++){
cout<<str[i];
}
}
return 0;
}