c语言思想15

来源:互联网 发布:艾斯宾浩记忆曲线软件 编辑:程序博客网 时间:2024/05/11 13:06

/* 函数circle用于判断正整数n的d进制数表示形式是否是回文数 */

#include<stdio.h>

#iinclude<stdlib.h>

int circle(int n, int d)
{
int s=0,m=n;
while(m)  
{
s=s*d+m%d;         while设计以将整数转化为0后跳出
m/=d;
}
return s==n;  以回文数与原数的规律来判断返回结果为1或0  初看以为是错的,这是简化的
}
/* main函数用于测试circle函数 */
int num[]={232,27,851};
int scale[]={2,10,16};
main()
{
int i,j;
system("cls");
for(i=0;i<sizeof(num)/sizeof(num[0]);i++)      打印输出
for(j=0;j<sizeof(scale)/sizeof(scale[0]);j++)
if(circle(num[i],scale[j]))
printf("%d -> (%d) is a Circle Number!\n",num[i],scale[j]);
else
printf("%d -> (%d) is not a Circle Number!\n",num[i],scale[j]);
printf("\n Press any key to quit...\n");
getchar();

}


由于这个回文数判断是使用数学原理来实现的相比复杂的字符串比较要效率要高

在多个位数的回文数可以依据数学原理的10倍数来解决

0 0
原创粉丝点击