#include <stdio.h>
#include <math.h>
int iscontain(int num, int div1, int div2, int numbit)
{
int ret, i, j;
char *strnum, *strdiv1, *strdiv2;
strnum = (char *)malloc(numbit + 1);
if(!strnum)
return -1;
memset(strnum, 0, numbit);
ret = sprintf(strnum, "%d", num);
strdiv1 = (char *)malloc(numbit/2 + 1);
if(!strdiv1)
return -1;
memset(strdiv1, 0, numbit/2 + 1);
ret = sprintf(strdiv1, "%d", div1);
strdiv2 = (char *)malloc(numbit/2 + 1);
if(!strdiv2)
return -1;
memset(strdiv2, 0, numbit/2 + 1);
ret = sprintf(strdiv2, "%d", div2);
for(i = 0;i < numbit;i++)
{
for(j = 0;j < numbit/2;j++)
{
if(strnum[i] == strdiv1[j] && strnum[i] != 'e')
{
strnum[i] = 'e';
strdiv1[j] = 'e';
break;
}
}
if(j < numbit/2)
continue;
for(j = 0;j < numbit/2;j++)
{
if(strnum[i] == strdiv2[j] && strnum[i] != 'e')
{
strnum[i] = 'e';
strdiv2[j] = 'e';
break;
}
}
}
for(i = 0;i < numbit;i++)
{
if(strnum[i] != 'e')
return -1;
}
free(strnum);
free(strdiv1);
free(strdiv2);
return 0;
}
int main(int argc, char *argv[])
{
int i, j, num, numbit, half, min, max, ret, count = 0;
numbit = atoi(argv[1]);
if(numbit % 2 == 1)
return -1;
half = numbit / 2;
max = (int)pow(10, half);
min = (int)pow(10, half - 1);
for(i = min;i < max;i++)
{
for(j = min;j < max;j++)
{
num = i * j;
if(num % 100 == 0)
continue;
ret = iscontain(num, i, j, numbit);
if(!ret)
{
printf("%d = %d * %d %d\n", num, i, j, numbit);
count++;
}
}
}
printf("total : %d\n", count);
return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
c语言 吸血鬼数字简单源码
共2个文件
xixue:1个
c:1个
4星 · 超过85%的资源 需积分: 19 18 下载量 168 浏览量
2010-10-26
21:38:58
上传
评论 2
收藏 3KB RAR 举报
温馨提示
吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序。以两个0结尾的数字是不允许的,例如,下列数字都是“吸血鬼”数字: 1260 = 21 * 60 1827 = 21 * 87 2187 = 27 * 81 1994年柯利弗德·皮寇弗在Usenet社群sci.math的文章中首度提出吸血鬼数。
资源详情
资源评论
资源推荐
收起资源包目录
xixuegui.rar (2个子文件)
xixue 6KB
xixue.c 2KB
共 2 条
- 1
鹏城伟哥
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1