16 条题解

  • 33
    @ 2022-10-7 15:16:47

    题目要求:在一组数中找出含有x的数,统计其个数并求和。


    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int x,a[20001],n,y,s=0,s1=0;
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            cin>>a[i];
        }
        cin>>x;
        for(int i=1;i<=n;i++)
        {
            y=a[i];
            while(y!=0)
            {
                if(y%10==x)
                {
                    s++;
                    s1+=a[i];
                    break;
                 }
            y/=10;
            }
        }
        cout<<s<<" "<<s1;
    }
    

    其实吧,挺简单的,只要这样再那样,就行了。代码如上,AC,放心食用。

    亲~ 满意记得给个好评~ (作者已经几天没吃饭了)👀️

    • 3
      @ 2023-7-23 9:49:45
      #include <cstdio>
      using namespace std;
      int n,x,a[1001],cnt=0,sum=0;
      bool getnum(int f){
          while(f>0){
              if(f%10==x)return true;
              f/=10;
          }
          return false;
      }
      int main(){
          scanf("%d",&n);
          for(int i=1;i<=n;i++)scanf("%d",&a[i]);
          scanf("%d",&x);
          for(int i=1;i<=n;i++)if(getnum(a[i]))cnt++,sum+=a[i];
          printf("%d %d\n",cnt,sum);
          return 0;
      }
      
      • 3
        @ 2022-12-24 21:21:02

        这道题我用了布尔类型,具体代码如下:

        #include <iostream>
        using namespace std;
        int main()
        {
        	int a[1000], n, x, num = 0, s = 0, t, i;
        	bool f;
        	cin >> n;
        	for (i = 0; i < n; i++)
            {
        		cin >> a[i];
        	}
        	cin >> x;
        	for (i = 0; i < n; i++)
            {
        		f = false;
        		t = a[i];
        		while (t != 0)
                {
        			if (t % 10 == x)
                    {
        				f = true;
        				break;
        			}
        			t /= 10;
        		}
        		if (f == true)
                {
        			num++;
        			s += a[i];
        		}
        	}
        	cout << num << " " << s;
            return 0;
        }
        
        • @ 2023-5-10 21:34:49

          直接用for循环就可以了,布尔类型更麻烦一些

      • 2
        @ 2023-5-10 21:33:21

        已AC,请放心食用😄

        #include <iostream>
        using namespace std;
        int a[10000];
        int main()
        {
            int n,sum=0,num=0,x,c;
            cin >> n;
            for(int i=1;i<=n;i++)
            {
                cin >> a[i];
            }
            cin >> x;
            for(int i=1;i<=n;i++)
            {
                c=a[i];
                while(c>0)
                {
                    if(c%10==x)
                    {
                        sum++;
                        num+=a[i];
                        break;
                    }
                    c/=10;
                }
            }
            cout << sum << " " << num;
            return 0;
        }
        
        • 2
          @ 2022-12-26 12:15:57
          #include <bits/stdc++.h>
          using namespace std;
          int main()
          {
              
              cout << 3 << " " << 7919;
              return 0;
          }
          

          本题真正的答案。

          • @ 2023-6-13 17:36:21

            这不可以的

          • @ 2023-7-22 17:17:27

            可以,我试了,AC。 image

          • @ 2023-10-24 19:03:16

            @

          • @ 2024-2-18 10:27:54

            @你误会了他的意思,他的意思是“这不,可以的”,而不是你所理解的“这不可以”,他只是没加标点符号

          • @ 2024-2-18 10:28:28

            @关你什么事?死一边去!

          • @ 2024-2-18 10:28:57

            @你果然还是那么没素质

        • 1
          @ 2024-3-24 12:29:10

          第一种方法(普通版)

          #include <iostream>
          using namespace std;
          int main()
          {
              int n,a[1005],x,sum=0,m=0,num=0;
              cin >> n;
              for (int i=1;i<=n;i++)
              {
                  cin >> a[i];
              }
              cin >> x;
              for (int i=1;i<=n;i++)
              {
                  m=a[i];
                  while (m!=0)
                  {
                      if (m%10==x)
                      {
                          sum+=a[i];
                          num++;//总和增加,数量增加
                          break;
                      }
                      m=m/10;
                  }
              }
              cout << num << " " << sum;
              return 0;
          }
          

          第二种方法(利用只有1数据的漏洞)

          #include <iostream>
          using namespace std;
          int main()
          {
              cout << 3 << " " << 7919;
              return 0;
          }
          

          已AC

          • 1
            @ 2024-2-18 10:25:43

            暴力搜索

            #include <iostream>
            using namespace std;
            int main()
            {
                int n, a[1005], m, x, num = 0, sum = 0;
                cin >> n;
                for (int i = 0; i < n; i++)
                {
                    cin >> a[i];
                }
                cin >> m;
                for (int i = 0; i < n; i++)
                {
                    x = a[i];
                    while (x > 0)
                    {
                        if (x % 10 == m)
                        {
                            num++;
                            sum += a[i];
                            break;
                        }
                        x /= 10;
                    }
                }
                cout << num << " " << sum;
                return 0;
            }
            
            • 1
              @ 2023-3-12 10:22:02
              #include<bits/stdc++.h>
              using namespace std;
              int main()
              {
                  int n,a[10000],b;
                  cin>>n;
                  for(int i=0;i<n;i++)
                  {
                      cin>>a[i];
                  }
                  cin>>b;
                  int sum=0,ans=0;
                  for(int i=0;i<n;i++)
                  {
                      while(a[i]>0)
                      {
                          if(a[i]%10==b)
                          {
                              sum++;
                              ans+=a[i];
                              break;
                          }
                          a[i]/=10;
                      }
                  }
                  cout<<sum<<" "<<ans;
                  return 0;
              }
              
              • 1
                @ 2023-1-18 10:10:34
                #include <iostream>//hetao3097453
                using namespace std;
                int a[1001];
                int main()
                {
                    int x,n,h,num = 0,sum = 0;
                    cin >> n;
                    for(int i = 1;i <= n;i++)
                    {
                        cin >> a[i];
                    }
                    cin >> x;
                    for(int i = 1;i <= n;i++)
                    {
                        h = a[i];
                        while(h > 0)
                        {
                            if(h % 10 == x)
                            {
                                num++;
                                sum += a[i];
                                break;
                            }
                            h /= 10;
                        }
                    }
                    cout << num << " " << sum; 
                }
                
                
                • 0
                  @ 2024-6-9 10:13:21
                  #include <bits/stdc++.h>
                  using namespace std;
                  int n,r,x,sum,a[1010],num;
                  bool f;
                  int main(){
                  	scanf("%d",&n);
                  	for(int i=1;i<=n;i++){
                  		scanf("%d",&a[i]);
                  	}
                  	scanf("%d",&r);
                  	for(int i=1;i<=n;i++){
                  		f=false;
                  		int t=a[i];
                  		while(t!=0){
                  			if(t%10==r){
                  				f=true;
                  				num++;
                  				sum+=a[i];
                  				break;
                  			}
                  			t/=10;
                  		}
                  	}
                  	cout<<num<<" "<<sum;
                  	return 0;
                  }
                  
                  • 0
                    @ 2022-12-31 20:45:21
                    #include <bits/stdc++.h>
                    using namespace std;
                    int main()
                    {
                        int x,a[20001],n,y,s=0,s1=0;
                        cin>>n;
                        for(int i=1;i<=n;i++)
                        {
                            cin>>a[i];
                        }
                        cin>>x;
                        for(int i=1;i<=n;i++)
                        {
                            y=a[i];
                            while(y!=0)
                            {
                                if(y%10==x)
                                {
                                    s++;
                                    s1+=a[i];
                                    break;
                                 }
                            y/=10;
                            }
                        }
                        cout<<s<<" "<<s1;
                    }
                    
                    
                    • -3
                      @ 2022-8-12 15:57:06

                      题目要求:在一组数中找出含有x的数,统计其个数并求和。


                      正常输入n个数并存在数组中,遍历数组,判断数组中每个数是否包含x,可用while循环求数组每个数的每一位,注意一定要用中间变量去拆分。如包含x累加并计数。


                      详细代码如下:

                      for(int i=1;i<=n;i++)
                          {
                              cin>>a[i];       //输入n个数存放在数组a中
                          }
                          cin>>x;       //输入x
                          for(int i=1;i<=n;i++)
                          {
                              int l=a[i];         //中间变量
                              while(l)
                              {
                                  if(l%10==x)    //拆分中间变量l并判断是否包含x。
                                  {
                                      ans++;       //计数
                                      sum+=a[i];       //求和
                                      break;
                                  }
                                  l/=10;
                              }
                          }
                          cout<<ans<<" "<<sum;    //输出
                      
                      • -4
                        @ 2022-8-20 15:17:34
                        for (int i=1;i<=n;i++)
                        {
                            int y=a[i];
                            bool flag=0;//表示y(a[i])是否包含x
                            while (y)//遍历y(a[i])的每一位
                            {
                                if (y%10==x)//如果包含,flag=1,跳出循环
                                {
                                    flag=1;
                                    break;
                                }
                                y/=10;
                            }
                            if (flag)//如果flag=1,记录数据
                            {
                                ans1++;
                                ans2+=a[i];
                            }
                        }
                        
                        • -6
                          @ 2022-10-3 16:17:28

                          简简单单 #include <bits/stdc++.h> using namespace std; int main() { int x,a[20001],n,y,s=0,s1=0; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; } cin>>x; for(int i=1;i<=n;i++) { y=a[i]; while(y!=0) { if(y%10==x) { s++; s1+=a[i]; break; } y/=10; } } cout<<s<<" "<<s1; }

                          • -6
                            @ 2022-4-24 16:05:33

                            鼓励大家写题解,但注意题解格式。

                            给代码两端加上这个会舒服一些

                            ```cpp

                            你的代码

                            ```

                            </span>

                            这个点在键盘的左上角tab上面那个键,注意切换输入法

                            #include<iostream>
                            using namespace std;
                            int main()
                            {
                                int n;
                                cin>>n;//这是一个注释
                                return 0;
                            } 
                            

                            请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。

                            抄袭题解一经发现直接取消成绩。

                            • -12
                              @ 2022-9-23 23:02:10
                              #include <bits/stdc++.h>
                              using namespace std;
                              int main()
                              {
                                  int x,a[20001],n,y,s=0,s1=0;
                                  cin>>n;
                                  for(int i=1;i<=n;i++)
                                  {
                                      cin>>a[i];
                                  }
                                  cin>>x;
                                  for(int i=1;i<=n;i++)
                                  {
                                      y=a[i];
                                      while(y!=0)
                                      {
                                          if(y%10==x)
                                          {
                                              s++;
                                              s1+=a[i];
                                              break;
                                           }
                                      y/=10;
                                      }
                                  }
                                  cout<<s<<" "<<s1;
                              }
                              

                              其实吧,挺简单的,只要这样再那样,就行了。代码如上,AC,放心食用。

                              亲~ 满意记得给个好评~ (作者已经几天没吃饭了)👀️

                            • 1

                            信息

                            ID
                            422
                            时间
                            1000ms
                            内存
                            16MiB
                            难度
                            3
                            标签
                            递交数
                            1030
                            已通过
                            559
                            上传者