C语言求同构数正整数n若是它平方数的尾部,则称n为同构数.例如,6是其平方数36的尾部,76是其平方数5776的尾部,6与76都是同构数.试求指定位数的同构数序列.
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 11:34:51
xT]OP+AӁu.dg8/:?IpMA(lRQtjqBu?f眶W{{N9Td^.k|}hr7JqH7vKgDkËb.Ⱦi9խ'Q/Űʓ^iad$s ;{7u
&nf TOtDa=X(9&%Pf4ϑ5jV.faP%dȸfeb 9kΥ ְa-Խ@F|o?lFպD(Ó![=A
̜|K:6+VM Wv 8dsUEB@]ýTFq2\Qv'
FݬU8rGan69R=Smqur1Iv!t
Rthpj0il7W%'.ԽJ;GSo
e&|Qqtޚ=mX,Yk,̭_anYN cjbLYV)Bc$<с8,sX6yq9F}_$Sח) 9=#>3>[2lFqfVFFyb"_JSr4Nʴ2
C语言求同构数正整数n若是它平方数的尾部,则称n为同构数.例如,6是其平方数36的尾部,76是其平方数5776的尾部,6与76都是同构数.试求指定位数的同构数序列.
C语言求同构数
正整数n若是它平方数的尾部,则称n为同构数.例如,6是其平方数36的尾部,76是其平方数5776的尾部,6与76都是同构数.
试求指定位数的同构数序列.
C语言求同构数正整数n若是它平方数的尾部,则称n为同构数.例如,6是其平方数36的尾部,76是其平方数5776的尾部,6与76都是同构数.试求指定位数的同构数序列.
1、算法分析:
对指定范围内的每一个整数a,求出其平方,判断a是否是其平方的尾部,通常有以下方法:
通过字符串子串比较找出同构数.
为了求更高位数的同构数,可应用同构数的以下性质:一个m位同构数的尾部m-1位数也是一个同构数.道理很简单
,a是一个m位数,a的平方数尾部的m-1位仅由a尾部的m-1位决定而与a的最高位无关.
易知一个同构数有三个:1,5,6,则二位同构数的个位数字只可能是1,5,6这三个数字.
根据这一思路,我们可应用递推求出多位同构数串.
2.求指定区间内的同构数
程序代码如下:
#include
#include
#include
char *right(char *ms,int len); /*截取一个字符串尾部长为len个字符的子串*/
void main()
{
long a;
int len;
char as[10];
char ms[20];
printf("求[1,10000]中的同构数:\n");
for(a=1;a