C语言

来源:互联网 发布:php完全自学手册 编辑:程序博客网 时间:2024/06/16 00:25

一辆卡车违反交通规则,撞人后逃跑.现场有三人目击该事件,但都没有记住车号,只记下了车号的一些特征.甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方.请根据以上线索求出车号.

 

代码:

#include <stdio.h>int main(){int i,j,k,temp; //i,j为车牌号的前两位和后两位,k为车牌号int flag = 0;//flag为标识变量for(i = 0;i <= 9;i++){  if(flag)     break;  for(j = 0;j <= 9;j++)  {  if(flag)       break;     if( i != j )         {         k = 1000 * i + 100 * i + 10 * j + j;             for(temp = 31;temp <= 99;temp++)         {            if(temp * temp == k)            {                 printf(“车牌号是%d”,k);               flag = 1;               break;            }                       }      }   }    return 0;}


对第三层循环嵌套的改进,每次还要进行(99-31=68)次判断,占用内存运行时间,改进后只需要一次判断即可.

#include <stdio.h>#include <math.h>int main(){int i,j,flag = 0; //i,j为车牌号的前两位和后两位,flag为标识变量float k; //k为车牌号for(i = 0;i <= 9;i++){  if(flag)     break;  for(j = 0;j <= 9;j++)  {     if(flag)       break;     if( i != j )         {         k = sqrt(1000 * i + 100 * i + 10 * j + j);            if(k == (int)k)         {            printf(“车牌号是%d”,k);            flag = 1;            break;         }     }   }    return 0;}



0 0
原创粉丝点击