欢迎光临散文网 会员登陆 & 注册

编程例思路理解

2020-12-05 22:28 作者:盆中莲花  | 我要投稿

编程例思路理解

若某数的平方具有对称性质,则称该数为回文数。例如11的平方为121,则称11为回文数。请找出1~999中的所有回文数。

/*int select(int a[],int x,)

{int i,n,x;

for(i=10,n=0;x<0;i*10,n++)

x=x%i;

return(a

*/

#include 

int symm(long n)//定义一个函数

{

 long i,g,new_num=0;

 i=n;//赋值

 while(i!=0)

 {

  g=i%10;//取余数,像第一个是个位数,第二个数经过循环后表示的就是原数的十位,

  new_num=new_num*10+g;//新的数,就是从赋值的数一层一层的剥开这个数。构建一个

  i=i/10;//除法在C语言中有取整的附加效果,依次除去原数的个位十位。。。。。

 }

 return(new_num==n);//这个不懂猜测是如果new-num等于n是真,否则是假,可是有什么作用呢。

}

//这个函数的作用是   奥   知道了。目的是数成对称的状态,所以呢,一个数从个位写到最后一位,等于,从最后一位写到个位,构造的这个新的数就是逆序。

不过哎,咋感觉这不对呢,代码写的好像不对啊。

奥奥奥,,我傻了我傻了。。。嗯嗯嗯嗯。。

void main()

{

 long i,m=1,h[998][2]={1,1};  //h[998][2]二维数组,意思是åß∂ƒ©˙∆˚¬µ˜∫√ç≈Ω   h[0][0]=1,h[0][1]=1.至于为什么要这样用二维数组。现在还是不知道

 for(i=0;i<998;i++)  //i<998

 {

  h[i][0]=m;

     h[i][1]=m*m;//这个循环是  两个列,999个行。  这是赋值。第一列赋数,第二列赋数的平方

 if(symm(m)&&symm(m*m))//&&是且的意思,需要两个同时满足,才继续进行下一步。symm这个函数的最后一个return的就是真假,所以就这样。

  printf("%3d\t",h[i][0]);

 m++;  //m++放这里

 }

}


编程例思路理解的评论 (共 条)

分享到微博请遵守国家法律