zoukankan      html  css  js  c++  java
  • PAT-乙级-1064 朋友数

    如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。

    例如 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




    分析:
      建立一个数组,存储朋友证号,初始化为0
      依次计算每个输入的朋友证号,在对应的位置加1
      输出数组中非零的个数和非零的下标即可



     1 //c
     2 
     3 #include <stdio.h>
     4 #define MAX 40
     5 
     6 int main(){
     7   int n,x,arr[MAX]={0};
     8   scanf("%d",&n);
     9   while(n--){
    10     scanf("%d",&x);
    11     int sum=0;
    12     while(x){
    13       sum+=(x%10);
    14       x/=10;
    15     }
    16     arr[sum]++;
    17   }
    18   int res=0;
    19   for(int i=0;i<MAX;i++){
    20     if(arr[i])
    21       res++;
    22   }
    23   printf("%d
    ",res);
    24   int f=0;
    25   for(int i=0;i<MAX;i++){
    26     if(arr[i]){
    27       if(f)
    28         printf(" ");
    29       printf("%d",i);
    30       f=1;
    31     }
    32   }
    33   return 0;
    34 }
     
  • 相关阅读:
    页面生命周期
    设计模式
    算法
    window服务
    Xml
    sql声明变量,及if else语句、while语句的用法
    SQL 使用临时表和临时变量完成update表字段实际案例
    SQL Server遍历表的几种方法
    node快速构建express项目
    词法分析
  • 原文地址:https://www.cnblogs.com/tenjl-exv/p/10087202.html
Copyright © 2011-2022 走看看