C语言求同构数正整数n若是它平方数的尾部,则称n为同构数.例如,6是其平方数36的尾部,76是其平方数5776的尾部,6与76都是同构数.试求指定位数的同构数序列.
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/01 01:50:46
![C语言求同构数正整数n若是它平方数的尾部,则称n为同构数.例如,6是其平方数36的尾部,76是其平方数5776的尾部,6与76都是同构数.试求指定位数的同构数序列.](/uploads/image/z/7026398-62-8.jpg?t=C%E8%AF%AD%E8%A8%80%E6%B1%82%E5%90%8C%E6%9E%84%E6%95%B0%E6%AD%A3%E6%95%B4%E6%95%B0n%E8%8B%A5%E6%98%AF%E5%AE%83%E5%B9%B3%E6%96%B9%E6%95%B0%E7%9A%84%E5%B0%BE%E9%83%A8%2C%E5%88%99%E7%A7%B0n%E4%B8%BA%E5%90%8C%E6%9E%84%E6%95%B0.%E4%BE%8B%E5%A6%82%2C6%E6%98%AF%E5%85%B6%E5%B9%B3%E6%96%B9%E6%95%B036%E7%9A%84%E5%B0%BE%E9%83%A8%2C76%E6%98%AF%E5%85%B6%E5%B9%B3%E6%96%B9%E6%95%B05776%E7%9A%84%E5%B0%BE%E9%83%A8%2C6%E4%B8%8E76%E9%83%BD%E6%98%AF%E5%90%8C%E6%9E%84%E6%95%B0.%E8%AF%95%E6%B1%82%E6%8C%87%E5%AE%9A%E4%BD%8D%E6%95%B0%E7%9A%84%E5%90%8C%E6%9E%84%E6%95%B0%E5%BA%8F%E5%88%97.)
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