vf编程 求四位正整数回文数的和 要过程

vf编程 求四位正整数回文数的和 要过程,第1张

新盯拆建一个程序(文件碧则拿菜单——新建——程序——新建文件),写代码: s=0

for i=1000 to 9999

ge=i%10

shi=int(i/10)%10

bai=int(i/100)%10

qian=int(i/1000)

if qian=ge and shi=bai

s=s+i

endif

next

?"四位正整数回文数的和是:",s

然后,直接点击悔搭感叹号,保存并运行,图:

#include<stdio.h>

int fun( char str[] )

{

int i,j,n

n=strlen(str)//测字符串str的长桐判度

/* for 循环的作用是,从两头往中间比较,

如果在到达字符串长度一半之前就出现有不一致的就跳出循环*/

for(i=0,j=n-1i<=(n-1)/2i++,j--)

if(str[i]!=str[j]) break

if(i>j) return 1/*如果跳出循环的,这不是回文数,也就是说i还小于等于字符串长度的一半,

所以i<+j,否则就证明是通过循环结束才跳出的,也就是说该字符串为回文数*/

return 0

}

void main()

{

char a[80]//定义一个字符数组用于存储将要输入的字符串

gets(a)//卖悔输入字符串

if ( fun(a)==1 ) /*根据fun函数的返回值判断是否是回文数,1为回文数,其他(实际上是0)为回文中轮正数 */

printf( "回文\n")//输出

else printf("非回文\n")//输出

}

*问题分析与算法设计

回文数的这一形成规则目前还属于一个猜想,尚未得到数学上的证明。有些回文数要经历上百个步聚才能获得。这里通过编程验证。

题目中给出的处理过程很清楚,算法不需要特殊设计。可按照题数早目的叙述直接进行验证。

*程序与程序注释

#include<stdio.h>

#define MAX 2147483647

long re(long int)

int nonres(long int s)

void main()

{

long int n,m

int count=0

printf("Please enetr a number optionaly:")

scanf("%ld",&n)

printf("The generation process of palindrome:\\n")

while(!nonres((m=re(n))+n)) /*判断整数与其反序数相加后是否为回文数*/

{

if(m+n>=MAX)

{

printf(" input error,break.\\n")

break

}

else

{

printf("[%d]:%ld+%ld=%ld\\n",++count,n,m,m+n)

n+=m

}

}

printf("[%d]:%ld+%ld=%ld\\n",++count,n,m,m+n)/*输出最后得到的毕局回文数*/

printf("Here we reached the aim at last!\\n")

}

long re(long int a) /*求输入整数的反序数*/手毕让

{

long int t

for(t=0a>0a/=10) /*将整数反序*/

t=t*10+a%10

return t

}

int nonres(long int s) /*判断给定的整数是否是回文数*/

{

if(re(s)==s) return 1/*若是回文数则返回1*/

else return 0/*否则返回 0*/

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12567943.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存