PAT (Basic Level) Practice (中文)1064 朋友数
时间:2022-07-24
本文章向大家介绍PAT (Basic Level) Practice (中文)1064 朋友数,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
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
代码:
#include<stdio.h>
int fun1(int n) //对输入的arr[i].n各位数求和
{
int sum=0;
while(n)
{
sum+=(n%10);
n/=10;
}
return sum;
}
int fun2(int *temparr1,int *temparr2,int t) //去重
{
int i,j;
int *temp;
int ll=0;
temp=(int*)malloc(t*sizeof(int));
for(i=0;i<t;i++)
temp[i]=0;
int l;
for(i=0;i<t-1;i++)
{
for(j=i+1;j<t;j++)
{
if(temp[i]==0&&temparr1[j]==temparr1[i]){
temp[j]=1;
}
}
}
for(i=0;i<t;i++)
{
if(temp[i]==0) temparr2[ll++]=temparr1[i];
}
return ll;
}
void fun3(int * temparr2,int n) //排序
{
int i,j;
int index,temp;
for(i=0;i<n-1;i++)
{
index=i;
temp=temparr2[i];
for(j=i+1;j<n;j++)
{
if(temparr2[j]<=temparr2[index]) index=j;
}
temparr2[i]=temparr2[index];
temparr2[index]=temp;
}
}
struct num
{
int n;
};
struct num arr[10001];
int main()
{
int N;
scanf("%d",&N);
int i;
int temparr1[10001];
int temparr2[10001];
int t=0;
for(i=0;i<N;i++)
{
scanf("%d",&arr[i].n);
int temp=fun1(arr[i].n);
temparr1[t++]=temp;
}
int temp=fun2(&temparr1,&temparr2,t);
fun3(&temparr2,temp);
printf("%dn",temp);
for(i=0;i<temp;i++)
{
if(i==temp-1) printf("%dn",temparr2[i]);
else printf("%d ",temparr2[i]);
}
return 0;
}
- UVa 11461 - Square Numbers【数学,暴力】
- BZOJ 3097: Hash Killer I【构造题,思维题】
- Python Selenium设计模式-POM
- BZOJ 1207: [HNOI2004]打鼹鼠【妥妥的n^2爆搜,dp】
- HDU 1711 Number Sequence(KMP裸题,板子题,有坑点)
- BZOJ 2222: [Cqoi2006]猜数游戏【神奇的做法,傻逼题,猜结论】
- BZOJ 1257: [CQOI2007]余数之和sum【神奇的做法,思维题】
- 洛谷 P1019 单词接龙【经典DFS,温习搜索】
- MVCforum 支持多国语言
- BZOJ 1012: [JSOI2008]最大数maxnumber【线段树单点更新求最值,单调队列,多解】
- BZOJ 1303: [CQOI2009]中位数图【前缀和】
- 高斯消元模版
- HDU 1728 逃离迷宫(DFS经典题,比赛手残写废题)
- 洛谷 P1219 八皇后【经典DFS,温习搜索】
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python数据科学:正态分布与t检验
- Python数据科学:方差分析
- 推荐3个开源的快速开发平台,前后端都有,项目经验又有着落了!
- Python数据科学:卡方检验
- Java 中使用 Redis
- Python数据科学:线性回归
- 人生苦短,我用k8s--------------单节点二进制部署
- 人生苦短,我用k8s--------------k8s集群二进制部署
- 从零开始学习 JD Chain(四)-使用穿透式检索-Release
- 用Python清除文件夹中的重复视频
- Python数据科学:线性回归诊断
- 用Python自动化生成倒计时图片
- (译)SDL编程入门(12)色彩调制
- (译)SDL编程入门(11)裁剪渲染和精灵表
- Python数据科学:正则化方法