什么叫回文
什么叫回文
楼主好有钱啊!!收你50不多吧?
[UseMoney=50]
void main() { long a=98589,i ; i=a ; while(++i) { if(fun(i)) { printf(" i= %ld v= %f",i,(float)(i-a)/2.0); break ; } } i=a ; while(--i) { if(fun(i)) { printf(" i= %ld v= %f",i,(float)(a-i)/2.0); break ; } } getch(); } int fun(long s) { long a,t=0 ; a=s ; while(a)t*=10,t+=a%10,a/=10 ; if(t==s)return 1 ; return 0 ; }[/UseMoney]
哈哈,比尔.knocker,好有商业头脑。
上面的我粗心了,谢谢指教。
#include "stdio.h" #include "math.h"
main() { long n=95859,temp=0; int x,k=0,flag=0,z,a[10]; while(flag==0) {flag=1; n++; temp=n; z=0; while((int)(n/pow(10,z))!=0) z++; /*计算位数长度*/ for(k=0;k<z;k++) {a[k]=n%10;n=n/10;} for(k=0;k<z;k++) if(a[k]!=a[z-k-1]) {flag=0;n=temp;break;} /*比较回文*/ n=temp; } printf("下个里程碑是:%ld\n",n); x=(n-95859)/2; printf("速度是:%d公里/小时",x); }
昨晚奋战,终于做完了。对各位大哥有点交代
还可以,不过如果买了我的去看看,你不会后悔的
这里有个问题,公里数是递增还是递减?所以有可能有两个答案。
另:TO live41
while((int)(n/pow(10,z))!=0)
while((n/(int )(pow(10,z)))!=0)程序对错我没有看,但是要加int 也是加这里
两种写法都一样,只不过第二种写法在编译时没有warning而已,都一样。
而且两种写法都没解决我的问题,就是虽然最后z得到5,但并不是一次过得到,而是倒回去1再加重复好多次最后得到5的,没有人能解答的话我不甘心!
两种写法都一样,只不过第二种写法在编译时没有warning而已,都一样。
而且两种写法都没解决我的问题,就是虽然最后z得到5,但并不是一次过得到,而是倒回去1再加重复好多次最后得到5的,没有人能解答的话我不甘心!
一样吗?不一样!
假定一下:
main() { int n=1; float d=1.001;
printf("%d\n",n/(int)d); printf("%d\n",(int)(n/d)); }
你看看结果是不是一样?