发布网友 发布时间:2022-04-21 06:52
共3个回答
热心网友 时间:2022-06-18 13:34
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char *right(char *ms,int len); /*截取一个字符串尾*为len个字符的子串*/
void main()
{
long a;
int len;
char as[10];
char ms[20];
printf("求[1,999]中的同构数:\n");
for(a=1;a<1000;a++)
{
ultoa(a,as,10); /*数a转换为字符串,存入as*/
len=strlen(as);
ultoa(a*a,ms,10);
if(strcmp(as,right(ms,len))==0) /*比较字符串as与ms长为len的子串是否相等*/
printf("%s 其平方为 %s\n",as,ms); /*相等就是同构数,输出结果*/
}
}
char *right(char *ms,int len) /*截取字符串尾*为len子串的函数*/
{
int i,j;
for(i=0;i<(signed)strlen(ms);ms++);
for(j=0;j<len;j++,ms--);
return ms;
}
引用自:http://zhidao.baidu.com/question/24433856.html
热心网友 时间:2022-06-18 13:35
#include <stdio.h>
void main()
{
int n=0;
for(n=1; n<=999; n++)
if( ((n*n-n) % (n<10 ? 10 : (n<100 ? 100 : 1000)))==0 )
printf("%d\n", n);
}
结果:
1
5
6
25
76
376
625
热心网友 时间:2022-06-18 13:35
#include <stdlib.h>
#include <stdio.h>
int TonggouSum(int m,int n)
{
int i;
int sum=0;
if((m<1)||(m>n)||(n>100))return 0;
for(i=m;i<=n;i++)
{
if(i<10)
{
if((i*i)%10==i){sum+=i;printf("%d\t",i);}
}
else if ( i>=10&&i<100)
{
if((i*i)%100==i){sum+=i;printf("%d\t",i);}
}
else if ( i>100)
{
if((i*i)%1000==i){sum+=i;printf("%d\t",i);}
}
}
return sum;
}
void main()
{
int i;
i=TonggouSum(1,100);
printf(,%d\n",i);
getchar();
}
经过调试