編程例思路理解
編程例思路理解
若某數(shù)的平方具有對稱性質(zhì),則稱該數(shù)為回文數(shù)。例如11的平方為121,則稱11為回文數(shù)。請找出1~999中的所有回文數(shù)。
/*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)//定義一個函數(shù)
{
?long i,g,new_num=0;
?i=n;//賦值
?while(i!=0)
?{
? g=i%10;//取余數(shù),像第一個是個位數(shù),第二個數(shù)經(jīng)過循環(huán)后表示的就是原數(shù)的十位,
? new_num=new_num*10+g;//新的數(shù),就是從賦值的數(shù)一層一層的剝開這個數(shù)。構(gòu)建一個
? i=i/10;//除法在C語言中有取整的附加效果,依次除去原數(shù)的個位十位。。。。。
?}
?return(new_num==n);//這個不懂猜測是如果new-num等于n是真,否則是假,可是有什么作用呢。
}
//這個函數(shù)的作用是 ? 奧 ? 知道了。目的是數(shù)成對稱的狀態(tài),所以呢,一個數(shù)從個位寫到最后一位,等于,從最后一位寫到個位,構(gòu)造的這個新的數(shù)就是逆序。
不過哎,咋感覺這不對呢,代碼寫的好像不對啊。
奧奧奧,,我傻了我傻了。。。嗯嗯嗯嗯。。
void main()
{
?long i,m=1,h[998][2]={1,1}; ?//h[998][2]二維數(shù)組,意思是?????˙???μ?∫√?≈Ω ? h[0][0]=1,h[0][1]=1.至于為什么要這樣用二維數(shù)組?,F(xiàn)在還是不知道
?for(i=0;i<998;i++) ?//i<998
?{
? h[i][0]=m;
? ? ?h[i][1]=m*m;//這個循環(huán)是 ?兩個列,999個行。 ?這是賦值。第一列賦數(shù),第二列賦數(shù)的平方
?if(symm(m)&&symm(m*m))//&&是且的意思,需要兩個同時滿足,才繼續(xù)進行下一步。symm這個函數(shù)的最后一個return的就是真假,所以就這樣。
? printf("%3d\t",h[i][0]);
?m++; ?//m++放這里
?}
}