求魔术数

来源:互联网 发布:Javascript alter 编辑:程序博客网 时间:2024/05/16 05:36

魔术定义:整数N以基数B表示,如21以基数3表示为210,那么21是基数3的一个魔术,210三个位的值都不一样。设计函数,输入参数N和B(B介于2到10之间),返回是否为魔术。

 

#include<stdlib.h>char c[100];int map[10] = {0};int isMagicNum(int N, int B){int i = 0,j, result = 1;;while(N >= B){c[i++] = N % B+'0';if(map[ N % B] == 0){map[ N % B]++;}else{result = -1;}N = N / B;}if(N != 0){c[i++] = N +'0';}c[i] = '\0';for(j = 0; j < i; i--){char temp = c[j];c[j] = c[i-1];c[i-1] = temp;j++;}printf("%s\n",c);return result;}int main(){int t = isMagicNum(21,10);printf("%d",t);}


 

原创粉丝点击