当前位置: 首页 > news >正文

001 dart刷题

#dart刷题系列第一期

1.   l1 = [1,2,3,4,5,11],计算l1内所有数字的总和

void main(){List l1 = <int> [1,2,3,4,5,11];int a = 0;for (int i=0;i<l1.length;i++){int b = l1[i];a += b;}print(a);
}

计算总和,但是所有的元素都在列表里面,所以第一步是得把元素提取出来,而后再把他们加起来

所以第一步是遍历循环,第二步则是全部加到一个数里面

以上,为第一题的全部原理

2.  加减乘除的计算,a = 10 , b = 5 ,利用函数计算a+b,a-b,a*b,a/b

Suanshu(a,b,c){if (c == "+"){return a + b;
} else if (c == "-"){return a - b;
} else if (c == "*"){return a * b;
} else if (c == "/"){return a / b;
}
}void main(){print(Suanshu(10,5,"+"));print(Suanshu(10,5,"-"));print(Suanshu(10,5,"*"));print(Suanshu(10,5,"/"));
}

由于是计算,所以很容易想到三个元素,两个数,以及符号,那么作为计算器,自然应该是要输入三个元素,当然,由于是简易计算器,所以这里没有给如果符号不在c的时候该怎么办

然后函数创造出来后,直接调用,以上,为第二题的全部逻辑

3.  数据分类

小明有一堆数据,但是数据太多,小明不知道如何快速的分类下数据,请你帮帮他:

数据:111,32,34,24,2454,23,23433,34,234,11,43,234,3354,23,232,4343,3333544,1,11,1,322,3,4,5,23,343,43,2,3,343434,123

分类要求:一位数,两位数,三位数,四位数,五位数及以上

输出:每个类型有多少数字?

void main(){List l0 = [111,32,34,24,2454,23,23433,34,234,11,43,234,3354,23,232,4343,3333544,1,11,1,322,3,4,5,23,343,43,2,3,343434,123];List l1 = [];List l2 = [];List l3 = [];List l4 = [];List l5 = [];
shuaixuan(l0,l1,l2,l3,l4,l5);print(l1);print(l2);print(l3);print(l4);print(l5);
}shuaixuan(List l,a,b,c,d,e){for (int i = 0; i< l.length; i++){if (l[i] ~/ 10 == 0){a.add(l[i]);} else if (l[i] ~/ 100 == 0){b.add(l[i]);} else if (l[i] ~/ 1000 == 0){c.add(l[i]);} else if (l[i] ~/ 10000 == 0){d.add(l[i]);} else {e.add(l[i]);}}
}

由于是按照位数分类,那么这是第一个要解决的问题,该如何分类?
由于差异是位数不同,所以我们必须从这里入手,位数不同,什么不同呢?

我们可以想到,有两种方式,一种是因为位数的不同,那么长度就不同,所以可以根据长度不一样,来进行分类

但是这是好方法吗?这里虽然可以解决问题,但是如果有小数,那不就不行了吗?所以,我们得找一个更好的方法,从而可以彻底解决这类的问题
那么在所有的计算方法中,很明显加法减法乘法除法都不太行,但是整除?整除似乎是可以的,对于任何一个n位数,整除n+1位的数结果都是0,但是整除的数字达到n+1位,那么就不是0,这里就是一个突破口

因此,可以根据这个突破口,设计函数,从而实现要求,以上,是第三题的全部解析

http://www.xdnf.cn/news/651727.html

相关文章:

  • QT6.9中opencv引用路径的其中一种设置
  • AlphaCore GPU 物理仿真引擎内测邀请
  • crc32代码设计
  • .NET 8使用AOT发布ASP.NET Core应用
  • 《软件工程》第 7 章 - 软件体系结构设计
  • Wan2.1 图生视频 多卡推理批量生成视频
  • 在Windows上,将 Ubuntu WSL 安装并迁移到 D 盘完整教程(含 Appx 安装与迁移导入)
  • Cocos Creator 之 Label的实际宽高改变文本背景大小及常用方法
  • 【Volumetric Heatmap热力图插件的使用】
  • SpringBoot性能优化的12招
  • Flutter Container组件、Text组件详解
  • 商城图片性能优化实战:懒加载与下一代格式的化学反应
  • 游戏行业DDoS防护:基于IP信誉库的实时拦截方案
  • ArrayBlockingQueue 和 LinkedBlockingQueue 有什么区别?
  • 第一章第2节:安全生命周期(识别→防护→检测→响应→恢复)
  • LitCTF2025 WEB
  • linux文件权限管理
  • 《软件工程》-第 1 章 软件与软件工程
  • Python 网络编程入门
  • 【人工智能-agent】--使用python调用dify工作流
  • Win10/Win11终极C盘清理指南
  • 深入剖析Java中的伪共享:原理、检测与解决方案
  • RT-Thread源码阅读(3)——内核对象管理
  • ES6基础
  • 考研408《计算机组成原理》复习笔记,第二章(3)数值数据的运算(浮点数计算篇)
  • 新一代WebP2P视频物联技术:EasyRTC嵌入式音视频通信SDK助力音视频实时通信场景应用
  • 基于SpringBoot+RabbitMQ完成应用通信
  • 编程日志5.19
  • 一根网线可以有两个ip地址吗?怎么实现
  • 洛谷-P1957 口算练习题