16 条题解
-
33
题目要求:在一组数中找出含有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
#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
这道题我用了布尔类型,具体代码如下:
#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; }
-
2
已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; }
-
1
第一种方法(普通版)
#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
暴力搜索
#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
#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
#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; }
-
-3
题目要求:在一组数中找出含有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; //输出
-
-12
#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
- 标签
- 递交数
- 1044
- 已通过
- 565
- 上传者