7-4 同数异形体
分数 10
全屏浏览
切换布局
作者 庄波
单位 山东航空学院
在自然界中,有些物质由同样的单一化学元素组成,因排列方式不同而具有不同性质,称为同素异形体,比如:钻石和石墨。
类似地,我们把由相同的数字(包括个数)、不同的排列形成的正整数称为同数异形体。
例如:12121 和 11221 均由 3 个 1 和 2 个 2 组成,因此互为“同数异形体”,但 12121 与 1122 则不是。
请编程判断两个数是否是同数异形体。
输入格式:
两个正整数 a 和 b,空格隔开,大小不超过 230。
输出格式:
第一行输出 a 和 b(中间用一个空格隔开)。
第二行输出是否同数异形体的判断结果:
(1)若 a 等于 b,输出 Equal
;
(2)若 a 和 b 是同数异形体,则输出 ALIEN
;
(3)若 a 和 b 既不相等也不是同数异形体,输出 Different
。
输入样例 1:
12121 11221
输出样例 1:
12121 11221
ALIEN
输入样例 2:
12121 1122
输出样例 2:
12121 1122
Different
输入样例 3:
12121 12121
输出样例 3:
12121 12121
Equal
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
答案:
#include<stdio.h>
int main(){
int a,b;
scanf("%d %d",&a,&b);
printf("%d %d\n",a,b);
if(a==b) printf("Equal\n");
else{
int aa[10]={0};
int bb[10]={0};
do{
aa[a%10]++;
a/=10;
}while(a!=0);
do{
bb[b%10]++;
b/=10;
}while(b!=0);
for(int i=0;i<10;i++){
if(aa[i]!=bb[i]){
printf("Different\n");
return 0;
}
}
printf("ALIEN\n");
}
return 0;
}