问题标题: 酷町堂:3725

0
0
已解决
张亦阳
张亦阳
资深守护
资深守护

#include<iostream>

using namespace std;

int main()

{

long long n,m,h=0,c=0;

cin>>n>>m;

for(int i=1;i<=m;i++){

if(n%10==m){

h=i;

break;

}

n/=10;

}

while(n!=0){

if(n%10==m)

c++;

n/=10;

}

cout<<c;

return 0;

}

 

20?


1
已采纳
李瑞曦
李瑞曦
高级天翼
高级天翼

1.你的思路我第一次也是这样的,后来才发现,题目上说的是从右往左。所以你的第一次循环应该是while,定义一个p,p=0,再用a数组存n的每一位。每个循环p都++,当p=m时,可以用h存储。第一个循环:

while(n!=0){

a[++p]=n%10;

if(p==m){

h=n%10;

}

n/=10;

}

2.第二个循环中if里是==h,但是我试的时候是50分,就用了for循环。第二个循环:

for(int i=1;i<=p;i++){
    if(a[i]==h){
        c++;
    }
}

我试过了,AC

李瑞曦在2020-04-06 15:51:59追加了内容

望采纳!

0
邹昊轩
邹昊轩
资深光能
资深光能

for(int i=s.size()-1;i>=0;i--){
        if(s[n-m]==s[i]){
            cnt++;
        }
    }

这是核心代码,n=s.size()

其他你肯定知道。

我要回答