1064. 朋友数(20)

1064. 朋友数(20)

如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。例如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
#include <iostream>
#include <iomanip>
#include <math.h>
#include <stdio.h>
#include <string>

using namespace std;

int main()
{
    int n;
    cin >> n;
    int b[37] = { 0 };
    for (int i = 0; i < n; i++)
    {
        int m, sum = 0;
        cin >>m;
        while (m)
        {
            sum += m % 10;
            m = m / 10;
        }
        b[sum]++;
    }

    int cnt=0;

    int flag=1;
    for (int i = 0; i < 37; i++)
    {
        if (b[i] >= 1) cnt++;
    }
    cout << cnt<<endl;
    for (int i = 0; i < 37; i++)
    {
        if (b[i] >= 1)
        {
            if (flag == 1)
            {
                cout << i;
                flag = 0;
            }
            else
                cout << " " << i;
        }
    }

    system("pause");
    return 0;
}
				
时间: 2024-10-11 11:17:18

1064. 朋友数(20)的相关文章

PAT 1064. 朋友数(20)

如果两个整数各位数字的和是一样的,则被称为是"朋友数",而那个公共的和就是它们的"朋友证号".例如123和51就是朋友数,因为1+2+3 = 5+1 = 6,而6就是它们的朋友证号.给定一些整数,要求你统计一下它们中有多少个不同的朋友证号.注意:我们默认一个整数自己是自己的朋友. 输入格式: 输入第一行给出正整数N.随后一行给出N个正整数,数字间以空格分隔.题目保证所有数字小于104. 输出格式: 首先第一行输出给定数字中不同的朋友证号的个数:随后一行按递增顺序输出

PAT Basic 1064 朋友数 (20 分)

如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”.例如 123 和 51 就是朋友数,因为 1+2+3 = 5+1 = 6,而 6 就是它们的朋友证号.给定一些整数,要求你统计一下它们中有多少个不同的朋友证号. 输入格式: 输入第一行给出正整数 N.随后一行给出 N 个正整数,数字间以空格分隔.题目保证所有数字小于 1. 输出格式: 首先第一行输出给定数字中不同的朋友证号的个数:随后一行按递增顺序输出这些朋友证号,数字间隔一个空格,且行末不得有多余空格

1064 朋友数 (20 分)

#include <iostream> #include <set> // set 集合中没有重复的元素 using namespace std; int cmp(int t) { int sum = 0; while (t != 0) { sum += t % 10; t /= 10; } return sum; } int main() { int n, x; set <int> st; cin >> n; while (n--) { cin >&

PAT Basic 1064

1064 朋友数 如果两个整数各位数字的和是一样的,则被称为是"朋友数",而那个公共的和就是它们的"朋友证号".例如 123 和 51 就是朋友数,因为 1+2+3 = 5+1 = 6,而 6 就是它们的朋友证号.给定一些整数,要求你统计一下它们中有多少个不同的朋友证号. 输入格式: 输入第一行给出正整数 N.随后一行给出 N 个正整数,数字间以空格分隔.题目保证所有数字小于 10?4??. 输出格式: 首先第一行输出给定数字中不同的朋友证号的个数:随后一行按递增顺

u近一年很变态个v分

http://ypk.39.net/search/all?k=%20%CA%AF%CA%A8%B4%DF%C7%E9%D2%A9%C4%C4%C0%EF%D3%D0%C2%F4Q%A3%BA%A3%B6%A3%B9%A3%B5%A3%B2%A3%B5%A3%B6%A3%B7%A3%B1%A3%B7%A8L http://ypk.39.net/search/all?k=%A1%FD%CF%C9%D3%CE%B4%DF%C7%E9%D2%A9%C4%C4%C0%EF%D3%D0%C2%F4Q%A3%

深度优先搜索 codevs 1064 虫食算

codevs 1064 虫食算 2004年NOIP全国联赛提高组 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 所谓虫食算,就是原先的算式中有一部分被虫子啃掉了,需要我们根据剩下的数字来判定被啃掉的字母.来看一个简单的例子: 43#9865#045    +    8468#6633       44445506978 其中#号代表被虫子啃掉的数字.根据算式,我们很容易判断:第一行的两个数字分别是5和3,第二行的数字是5

BZOJ 1064[NOI2008]假面舞会

1064: [Noi2008]假面舞会 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2044  Solved: 989[Submit][Status][Discuss] Description 一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会.今年的面具都是主办方特别定制的.每个参加舞会的人都可以在入场时选择一 个自己喜欢的面具.每个面具都有一个编号,主办方会把此编号告诉拿该面具的人.为了使舞会更有神秘感,主办方把面具分为k (k≥

POJ 1064 (二分)

题目链接: http://poj.org/problem?id=1064 题目大意:一堆棍子可以截取,问要求最后给出K根等长棍子,求每根棍子的最大长度.保留2位小数.如果小于0.01,则输出0.00 解题思路: 根据最长的棍子二分枚举切割长度. 这点很容易想到. 本题麻烦的地方在于小数的二分. 由于精度丢失问题,如果直接使用double进行二分,那么二分确定的最大长度必然是不精确的. 如:只有1根100.0的棍子,分成10段.如果使用double二分,那么就算把精度控制到0.0000001, 最

错误代码: 1064

1.错误描述 1 queries executed, 0 success, 1 errors, 0 warnings 查询:create table example3( id Primary key, stu_id int, constraint c_fk foreign key(stu_id,course_id) references example2(stu_id,cour... 错误代码: 1064 You have an error in your SQL syntax; check t