首页 > 其他分享 >每日打卡,用到了set

每日打卡,用到了set

时间:2023-05-19 11:22:33浏览次数:41  
标签:set cout int 用到 ++ 证号 打卡 朋友 sum

如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。例如 123 和 51 就是朋友数,因为 1+2+3 = 5+1 = 6,而 6 就是它们的朋友证号。给定一些整数,要求你统计一下它们中有多少个不同的朋友证号。

输入格式:

输入第一行给出正整数 N。随后一行给出 N 个正整数,数字间以空格分隔。题目保证所有数字小于 104。

输出格式:

首先第一行输出给定数字中不同的朋友证号的个数;随后一行按递增顺序输出这些朋友证号,数字间隔一个空格,且行末不得有多余空格。

输入样例:

8
123 899 51 998 27 33 36 12
 

输出样例:

4
3 6 9 26
  代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB

#include<iostream>
#include<set>
using namespace std;
int main()
{
int N;
cin >> N;
int* a = new int[N];
int* b = new int[N];
set<int>c;
set<int>d;
for (int i = 0; i < N; i++)
{
cin >> a[i];
}
int sum = 0; int t; int m;
for (int i = 0; i < N; i++)
{
sum = 0;
t = a[i];
while (t!=0)
{
m = t % 10;
sum += m;
t /= 10;
}
b[i] = sum;
}
for (int i = 0; i < N; i++)
{
t = c.size();
c.insert(b[i]);
d.insert(b[i]);
}
cout << d.size() << endl;
for (set<int>::iterator it = d.begin(); it != d.end(); it++)
{
if (it == --d.end())
{
cout << *it;
}
else
{
cout << *it << " ";
}
}
return 0;
}

标签:set,cout,int,用到,++,证号,打卡,朋友,sum
From: https://www.cnblogs.com/zhaoqianwan/p/17414365.html

相关文章

  • 每天打卡一小时 第三十天 贪心算法
     #include<bits/stdc++.h>usingnamespacestd;intfindContentChildren(vector<int>&children,vector<int>&cookies);intmain(){intn;cin>>n;vector<int>children(n);for(inti=0;i<n;i++)......
  • 编程打卡:面向对象程序设计测试
    #include<iostream>#include<iomanip>#include<string>#include<bitset>usingnamespacestd;intmain(){intx;cin>>oct>>x;cout<<dec<<x<<endl;cout<<setw(20)&l......
  • 打卡
    1.问题:输出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为153=1³+5³+3³。2.思路:水仙花数的解题思路是把给出的某个三位数的个位、十位、百位分别拆分,并求其立方和。3.程序流程图: 4.代码实现:#include<ios......
  • Solution Set - CDQ分治
    A[洛谷P2163].给定平面上若干个点,多次询问给定矩形内的点数。B[洛谷P3810].给定若干个三元组,对所有\(k\),求这样三元组的个数:恰有\(k\)个三元组,满足其每个分量都不超过它的相应分量。C[洛谷P3157].给定一个序列,从中依次删去某些元素,求每次删除前逆序对数目。D[CF762E/CF1045G].......
  • 5.18打卡
    一、实验内容定义一个Dog类,包括体重和年龄两个数据成员及其成员函数,声明一个实例dog1,体重5,年龄10,使用I/O流把dog1的状态写入磁盘文件。再声明一个实例dog2,通过读取文件dog1的状态赋给dog2。分别用文本方式和二进制方式操作文件。二、实验代码#include<bits/stdc++.h>usingna......
  • 5-18打卡
    递归写爬楼梯#include<stdio.h>//定义一个函数,用来打印每次爬的台阶数voidprint_steps(intsteps[],intn){printf("一种可能的方法是:");for(inti=0;i<n;i++){printf("%d",steps[i]);}printf("\n");}//定义一个递......
  • 每日打卡
    把真分数分解为埃及分数问题描述:古埃及人用的分数都是分子为一的分数,将真分数拆分成埃及分数问题分析:1如果分子为1直接输出2.分母是分子的倍数,化简后输出3.如果不能消去的话可以分出一个a/b+1和c出来代码:#include<stdio.h>intmain(){ longinta,b,c; printf("请输入a......
  • c++打卡练习(33)
    求一个真分数的埃及分数表示埃及分数是指只使用1作为分子的分数,例如8/11=1/2+1/5+1/55+1/110;流程图:伪代码:源代码:#include<iostream>usingnamespacestd;intmain(){ inta,b,c,i,j; cout<<"请输入一个真分数"<<endl; cin>>a; getchar(); cin>>b; if(a>b){ cout<<......
  • 第二十三天打卡
    一、问题描述C语言实现两个不同的自然数A和B,如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。二、设计思路1、a和b都是3000以内2、穷举a在3000以内(或穷举b在3000以内)3、通过......
  • 打卡 c语言趣味编程 求最小公倍数
    问题描述:求任意两个正整数的最小公倍数(LCM)。思路:输入两个正整数,假设为num1和num2。定义一个变量lcm并初始化为较大的那个数(即lcm=max(num1,num2))。进入一个循环,循环条件为lcm不能同时被num1和num2整除。在每次循环中,将lcm增加1。循环结束后,lcm的值就是最小......