首页 > 学院 > 开发设计 > 正文

1064. 朋友数(20)

2019-11-06 08:23:14
字体:
来源:转载
供稿:网友

1064. 朋友数(20)

时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue

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

输入格式:

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

输出格式:

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

输入样例:
8123 899 51 998 27 33 36 12输出样例:
43 6 9 26
#include <iostream>#include <vector>#include <stdio.h>#include <algorithm>#include <iomanip>#include <string>#include <set>using namespace std;int main(){    int N;    cin>>N;    //vector<int> v1;    int temp;    set<int> v2;    set<int>::iterator iter;    vector<int> v3;    int t = 0;    for(int i=0;i<N;i++){        cin>>temp;        int sum = 0;        while(temp!=0){            int yushu = temp%10;            sum += yushu;            temp= temp/10;        }        if(v2.find(sum)==v2.end()){            v2.insert(sum);            //cout<<sum<<" ";            t++;        }    }    cout<<t<<endl;    iter = v2.begin();    cout<<*iter;    for(iter++;iter!=v2.end();iter++){        cout<<" "<<*iter;    }    //sort(v2.begin(),v2.end());    return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表