04【C语言 & 趣味算法】“抓交通肇事犯”问题。算法改进:设置“标识变量”,有效减少循环次数。

简介: 04【C语言 & 趣味算法】“抓交通肇事犯”问题。算法改进:设置“标识变量”,有效减少循环次数。

一、指路指路



03【C语言&趣味算法】(值得品味的一道题)打鱼还是晒网?结构体的简单应用。函数的应用。判断闰年的应用。求指定日期距1990年1月1日的天数。

02【C语言&趣味算法】借书方案问题:小明有5本新书,要借给A、B、C三位小朋友,若每人每次只能借1本,则可以有多少种不同的借法?

01【C语言&趣味算法】百钱百鸡问题(问题简单,非初学者请忽略叭)。请注意算法的设计(程序的框架),程序流程图的绘制,算法的优化。


二、Problem:抓交通肇事犯



这是很有意思的一道"数学题”。有趣的地方,在于后面对于Algorithm的优化与改进。


2.1问题描述

2e822a23998d4ff4b8349cf7226cb7e1.jpg


2.2 problem分析


要注意“取值范围”。

1c1febf038f1412b9ad3973bf1a8f527.jpg


2.3算法设计

d89b084ff8fb4561bbe100fcf38e8e18.jpg


2.4确定程序框架:程序流程图的绘制

97a58e581d0d47a6a8bafb91693ef4b9.jpg09ddd72a12004baeb3dc7ace37680c8d.jpg


2.5判断车牌k是否为某个数的平方

f09f3627808f4ba0b82b0debf1ec7436.jpg


2.6完整code及输出


// 趣味04:抓交通肇事犯 问题 
#include<stdio.h>
int main()
{
 int i,j,k,temp;        /*i代表前两位车牌号数字,j代表后两位车牌号的数字,k代表车牌号*/
 for(i=0;i<=9;i++)
  for(j=0;j<=9;j++)   /*穷举前两位和后两位车牌数字*/
  {
    /*判断前两位数字和后两位数字是否不同*/
    if(i!=j)
    {
      /*组成4位车牌号k*/
      k=1000*i+100*i+10*j+j;
      /*判断k是否是某个数的平方,若是则输出k*/
      for(temp=31;temp<=99;temp++)
        if(temp*temp==k)
          printf("车牌号为%d",k);
    }
  }
}

输出如下:


4eb5ae0768874500abd8c79a9d859821.jpg


2.7优化,改进Algorithm

d6ae0496c01642c58e4c6145a667c40e.jpg


相关文章
|
17天前
|
存储 程序员 编译器
C语言变量与赋值详解
C语言变量与赋值详解
21 1
|
4天前
|
存储 缓存 算法
【C 言专栏】C 语言实现算法的高效性
【5月更文挑战第6天】本文探讨了C语言在实现高效算法上的优势,包括其高效性、灵活性、可移植性和底层访问能力。关键点包括选择合适的数据结构(如数组、链表、树和图)、应用优化策略(如减少计算、空间换时间、分治和动态规划),以及内存管理和代码优化技巧。通过实际案例(如排序和图遍历算法),阐述了如何利用C语言实现算法高效性,并强调在实践中不断探索和优化以提升算法效率。C语言在计算机科学中的重要地位使其成为实现高效算法的首选工具。
【C 言专栏】C 语言实现算法的高效性
|
4天前
|
搜索推荐 C语言
【C语言/数据结构】排序(归并排序|计数排序|排序算法复杂度)
【C语言/数据结构】排序(归并排序|计数排序|排序算法复杂度)
9 0
|
10天前
|
机器学习/深度学习 算法 C语言
【C言专栏】递归算法在 C 语言中的应用
【4月更文挑战第30天】本文介绍了递归算法在C语言中的应用,包括基本概念(通过调用自身解决子问题)、特点(调用自身、终止条件、栈空间)和实现步骤(定义递归函数、分解问题、设置终止条件、组合解)。文中通过阶乘计算和斐波那契数列两个案例展示了递归的使用,强调了递归可能导致的栈溢出问题及优化需求。学习递归有助于理解和应用“分而治之”策略。
|
15天前
|
C语言
C语言数据类型和变量(C语言零基础教程)
C语言数据类型和变量(C语言零基础教程)
|
17天前
|
算法 搜索推荐 C语言
C语言用流程图表示算法
C语言用流程图表示算法
19 0
|
17天前
|
存储 安全 编译器
C语言怎样定义指针变量
C语言怎样定义指针变量
7 0
|
17天前
|
存储 C语言
C语言中定义结构体类型变量的深入探索
C语言中定义结构体类型变量的深入探索
8 0
|
29天前
|
搜索推荐 算法 C语言
【排序算法】C语言实现随机快排,巨详细讲解
【排序算法】C语言实现随机快排,巨详细讲解
|
C语言 SDN
《C语言及程序设计》程序阅读——用循环累加
返回:贺老师课程教学链接  写出下面程序运行的结果。(1) #include &lt;stdio.h&gt; int main( ) { int i,m=1; for(i=5; i&gt;=1; i--) { m=(m+1)*2; printf("m=%d\n",m); } return 0; } (2)#include
774 0