求n的阶乘的算法框图_单片机常用的14个C语言算法

e4f5c426ef639a07315a7a6dc9d6b638.gif

问:怎么每天看到这种文章?

答:只需搜索公众号"51单片机学习网"免费关注

算法(Algorithm):计算机解题的基本思想方法和步骤。

        算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。6113dd69ba678838b1d63f7c76185d94.png一、计数、求和、求阶乘等简单算法 
  此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。 
  例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。 
  本题使用数组来处理,用数组a[100]存放产生的确100个随机整数,数组x[10]来存放个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数。即个位是1的个数存放在x[1]中,个位是2的个数存放在x[2]中,……个位是0的个数存放在x[10]。 
void main() 

int a[101],x[11],i,p; 
for(i=0;i<=11;i++) 
x=0; 
for(i=1;i<=100;i++) 

a=rand() % 100; 
printf("%4d",a); 
if(i%10==0)printf("\n"); 

for(i=1;i<=100;i++) 

p="a"%10; 
if(p==0) p="10"; 
x[p]=x[p]+1; 

for(i=1;i<=10;i++) 

p="i"; 
if(i==10) p="0"; 
printf("%d,%d\n",p,x); 

printf("\n"); 
} 二、求两个整数的最大公约数、最小公倍数 
  分析:求最大公约数的算法思想:(最小公倍数=两个整数之积/最大公约数) 
(1) 对于已知两数m,n,使得m>n; 
(2) m除以n得余数r; 
(3) 若r=0,则n为求得的最大公约数,算法结束;否则执行(4); 
(4) m←n,n←r,再重复执行(2)。 
例如: 求 m="14" ,n=6 的最大公约数. m n r 
14 6 2 
6 2 0 
void main() 
{ int nm,r,n,m,t; 
printf("please input two numbers:\n"); 
scanf("%d,%d",&m,&n); 
nm=n*m; 
if (m{ t="n"; n="m"; m="t"; } 
r=m%n; 
while (r!=0) 
{ m="n"; n="r"; r="m"%n; } 
printf("最大公约数:%d\n",n); 
printf("最小公倍数:%d\n",nm/n); 

三、判断素数 
  只能被1或本身整除的数称为素数 基本思想:把m作为被除数,将2—INT( )作为除数,如果都除不尽,m就是素数,否则就不是。(可用以下程序段实现) 
void main() 
{ int m,i,k; 
printf("please input a number:\n"); 
scanf("%d",&m); 
k=sqrt(m); 
for(i=2;iif(m%i==0) break; 
if(i>=k) 
printf("该数是素数"); 
else 
printf("该数不是素数"); 

将其写成一函数,若为素数返回1,不是则返回0 
int prime( m%) 
{int i,k; 
k=sqrt(m); 
for(i=2;iif(m%i==0) return 0; 
return 1; 

四、验证哥德巴赫猜想 
  (任意一个大于等于6的偶数都可以分解为两个素数之和) 
基本思想:n为大于等于6的任一偶数,可分解为n1和n2两个数,分别检查n1和n2是否为素数,如都是,则为一组解。如n1不是素数,就不必再检查n2是否素数。先从n1=3开始,检验n1和n2(n2=N-n1)是否素数。然后使n1+2 再检验n1、n2是否素数,… 直到n1=n/2为止。 
  利用上面的prime函数,验证哥德巴赫猜想的程序代码如下: 
#include "math.h" 
int prime(int m) 
{ int i,k; 
k=sqrt(m); 
for(i=2;iif(m%i==0) break; 
if(i>=k) 
return 1; 
else 
return 0; 

main() 
{ int x,i; 
printf("please input a even number(>=6):\n"); 
scanf("%d",&x); 
if (x<6||x%2!=0) 
printf("data error!\n"); 
else 
for(i=2;i<=x/2;i++) 
if (prime(i)&&prime(x-i)) 

printf("%d+%d\n",i,x-i); 
printf("验证成功!"); 
break; 


五、排序问题 
 1.选择法排序(升序) 
  基本思想: 
1)对有n个数的序列(存放在数组a(n)中),从中选出最小的数,与第1个数交换位置; 
2)除第1 个数外,其余n-1个数中选最小的数,与第2个数交换位置; 
3)依次类推,选择了n-1次后,这个数列已按升序排列。 
程序代码如下: 
void main() 
{ int i,j,imin,s,a[10]; 
printf("\n input 10 numbers:\n"); 
for(i=0;i<10;i++) 
scanf("%d",&a); 
for(i=0;i<9;i++) 
{ imin="i"; 
for(j=i+1;j<10;j++) 
if(a[imin]>a[j]) imin="j"; 
if(i!=imin) 
{s=a; a=a[imin]; a[imin]=s; } 
printf("%d\n",a); 


  2.冒泡法排序(升序) 
  基本思想:(将相邻两个数比较,小的调到前头) 
1)有n个数(存放在数组a(n)中),第一趟将每相邻两个数比较,小的调到前头,经n-1次两两相邻比较后,最大的数已“沉底”,放在最后一个位置,小数上升“浮起”; 
2)第二趟对余下的n-1个数(最大的数已“沉底”)按上法比较,经n-2次两两相邻比较后得次大的数; 
3)依次类推,n个数共进行n-1趟比较,在第j趟中要进行n-j次两两比较。 
程序段如下 
void main() 
{ int a[10]; 
int i,j,t; 
printf("input 10 numbers\n"); 
for(i=0;i<10;i++) 
scanf("%d",&a); 
printf("\n"); 
for(j=0;j<=8;j++) 
for(i=0;i<9-j;i++) 
if(a>a[i+1]) 
{t=a;a=a[i+1];a[i+1]=t;} 
printf("the sorted numbers:\n"); 
for(i=0;i<10;i++) 
printf("%d\n",a); 

  3.合并法排序(将两个有序数组A、B合并成另一个有序的数组C,升序) 
  基本思想: 
1)先在A、B数组中各取第一个元素进行比较,将小的元素放入C数组; 
2)取小的元素所在数组的下一个元素与另一数组中上次比较后较大的元素比较,重复上述比较过程,直到某个数组被先排完; 
3)将另一个数组剩余元素抄入C数组,合并排序完成。 
程序段如下: 
void main() 
{ int a[10],b[10],c[20],i,ia,ib,ic; 
printf("please input the first array:\n"); 
for(i=0;i<10;i++) 
scanf("%d",&a); 
for(i=0;i<10;i++) 
scanf("%d",&b); 
printf("\n"); 
ia=0;ib=0;ic=0; 
while(ia<10&&ib<10) 
{ if(a[ia]{ c[ic]=a[ia];ia++;} 
else 
{ c[ic]=b[ib];ib++;} 
ic++; 

while(ia<=9) 
{ c[ic]=a[ia]; 
ia++;ic++; 

while(ib<=9) 
{ c[ic]=b[ib]; 
b++;ic++; 

for(i=0;i<20;i++) 
printf("%d\n",c); 

六、查找问题 
  顺序查找法(在一列数中查找某数x) 
基本思想:一列数放在数组a[1]---a[n]中,待查找的数放在x 中,把x与a数组中的元素从头到尾一一进行比较查找。用变量p表示a数组元素下标,p初值为1,使x与a[p]比较,如果x不等于a[p],则使p=p+1,不断重复这个过程;一旦x等于a[p]则退出循环;另外,如果p大于数组长度,循环也应该停止。(这个过程可由下语句实现) 
void main() 
{ int a[10],p,x,i; 
printf("please input the array:\n"); 
for(i=0;i<10;i++) 
scanf("%d",&a); 
printf("please input the number you want find:\n"); 
scanf("%d",&x); 
printf("\n"); 
p=0; 
while(x!=a[p]&&p<10) 
p++; 
if(p>=10) 
printf("the number is not found!\n"); 
else 
printf("the number is found the no%d!\n",p); 

思考:将上面程序改写一查找函数Find,若找到则返回下标值,找不到返回-1 
②基本思想:一列数放在数组a[1]---a[n]中,待查找的关键值为key,把key与a数组中的元素从头到尾一一进行比较查找,若相同,查找成功,若找不到,则查找失败。(查找子过程如下。index:存放找到元素的下标。) 
void main() 
{ int a[10],index,x,i; 
printf("please input the array:\n"); 
for(i=0;i<10;i++) 
scanf("%d",&a); 
printf("please input the number you want find:\n"); 
scanf("%d",&x); 
printf("\n"); 
index=-1; 
for(i=0;i<10;i++) 
if(x==a) 
{ index="i"; break; 

if(index==-1) 
printf("the number is not found!\n"); 
else 
printf("the number is found the no%d!\n",index); 

七、二分法
在一个数组中,知道一个数值,想确定他在数组中的位置下标,如数组:A[5] = {1,2,6,7,9};我知道其中的值为6,那么他的下标位置就是3。
int Dichotomy(int *ucData, int long, int num)
{
   int iDataLow  = 0 ;
   int iDataHigh = num - 1;
   int iDataMIDDLE;
   while (iDataLow <= iDataHigh) 
  {
     iDataMIDDLE = (iDataHigh + iDataLow)/2;
     i f (ucData[iDataMIDDLE] > long)
     {
       iDataHigh = iDataMIDDLE - 1 ;
     }     
     else if (ucData[iDataMIDDLE] < long) 
  {
   iDataLow = iDataMIDDLE + 1 ;
  }  else{
   return iDataMIDDLE ;
  }
}
}
八、限幅滤波法
对于随机干扰 , 限幅滤波是一种有效的方法;
基本方法:比较相邻n 和 n - 1时刻的两个采样值y(n)和 y(n – 1),根据经验确定两次采样允许的最大偏差。如果两次采样值的差值超过最大偏差范围 ,认为发生可随机干扰 ,并认为后一次采样值y(n)为非法值 ,应予删除 ,删除y(n)后 ,可用y(n – 1) 代替y(n);若未超过所允许的最大偏差范围 ,则认为本次采样值有效。
下面是限幅滤波程序:( A 值可根据实际情况调整,value 为有效值 ,new_value 为当前采样值滤波程序返回有效的实际值 )
#define A 10
char value;
char filter()
{   char new_value;
    new_value = get_ad();
    if ( ( new_value - value > A ) || ( value - new_value > A ))  return value;
    return new_value;
}
九、中位值滤波法
中位值滤波法能有效克服偶然因素引起的波动或采样不稳定引起的误码等脉冲干扰;
对温度 液位等缓慢变化的被测参数用此法能收到良好的滤波效果 ,但是对于流量压力等快速变化的参数一般不宜采用中位值滤波法;
基本方法:对某一被测参数连续采样 n次(一般 n 取奇数) ,然后再把采样值按大小排列 ,取中间值为本次采样值。
下面是中位值滤波程序:
#define N   11
char filter()
{  char value_buf[N], count,i,j,temp;
    for ( count=0;count    {  value_buf[count] = get_ad();    delay();   }
    for (j=0;j    {  for (i=0;i         {  if ( value_buf>value_buf[i+1] )
             {temp = value_buf; value_buf = value_buf[i+1]; value_buf[i+1] = temp;  }
         }
    }
    return value_buf[(N-1)/2];

十.算术平均滤波法
算术平均滤波法适用于对一般的具有随机干扰的信号进行滤波。这种信号的特点是信号本身在某一数值范围附近上下波动 ,如测量流量、 液位;
基本方法:按输入的N 个采样数据 ,寻找这样一个 Y ,使得 Y 与各个采样值之间的偏差的平方和最小。
编写算术平均滤波法程序时严格注意:
       一.为了加快数据测量的速度 ,可采用先测量数据 存放在存储器中 ,测完 N 点后 ,再对 N 个数据进行平均值计算;
       二.选取适当的数据格式 ,也就是说采用定点数还是采用浮点数。其程序如下所示:
#define N 12
char filter()
{int   sum = 0,count;
      for ( count=0;count      {  sum+=get_ad();    delay();} 
return (char)(sum/N);
}
十一、递推平均滤波法
基本方法:采用队列作为测量数据存储器 ,   设队列的长度为 N ,每进行一次测量 ,把测量结果放于队尾 ,而扔掉原来队首的一个数据 ,这样在队列中始终就有 N 个 “最新” 的数据。当计算平均值时 ,只要把队列中的 N 个数据进行算数平均 ,就可得到新的算数平均值。这样每进行一次测量 ,就可得到一个新的算术平均值。
#define N 12
char value_buf[N],i=0;
char filter()
{ char count; int   sum=0;
  value_buf[i++] = get_ad();
if ( i == N )    i = 0;
for ( count=0;count     sum = value_buf[count];
return (char)(sum/N);
}
十二、一阶滞后滤波法
优点:对周期性干扰具有良好的抑制作用,适用于波动频率较高的场合;
缺点:相位滞后,灵敏度低.滞后程度取决于a值大小.不能消除滤波频率高于采样频率的1/2的干扰信号。程序如下:
#define a 50
char value;
char filter()
{ char   new_value;
   new_value = get_ad();
   return (100-a)*value + a*new_value;
}
十三、PID控制算法
在过程控制中,按偏差的比例(P)、积分(I)和微分(D)进行控制的PID控制器(亦称PID调节器)是应用最为广泛的一种自动控制器;
对于过程控制的典型对象──“一阶滞后+纯滞后”与“二阶滞后+纯滞后”的控制对象,PID控制器是一种最优控制;
PID调节规律是连续系统动态品质校正的一种有效方法,它的参数整定方式简便,结构改变灵活(PI、PD、…)。
一  模拟PID调节器6ec333b83d62245196450e7cea9c57d5.png 
模拟PID控制系统原理框图
PID调节器各校正环节的作用:
比例环节:即时成比例地反应控制系统的偏差信号e(t),偏差一旦产生,调节器立即产生控制作用以减小偏差;
积分环节:主要用于消除静差,提高系统的无差度。积分时间常数TI越大,积分作用越弱,反之则越强;
微分环节:能反应偏差信号的变化趋势(变化速率),并能在偏差信号的值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。
       PID调节器是一种线性调节器,它将给定值r(t)与实际输出值c(t)的偏差的比例(P)、积分(I)、微分(D)通过线性组合构成控制量,对控制对象进行控制。c677a18c6d197f8094fb7144bcb21225.png 36197be837011468403479307b7bb79c.png 7342b8b229e1dc4d5f06835769ee2d8d.png程序片段如下:
#include
#include             
typedef struct PID { 
double SetPoint;     // 设定目标Desired value 
double Proportion;    // 比例常数Proportional Const 
double Integral;      // 积分常数Integral Const 
double Derivative;    // 微分常数Derivative Const 
double LastError;    // Error[-1] 
double PrevError;    // Error[-2] 
double SumError;   // Sums of Errors 
} PID; 
主程序:
double sensor (void) 

return 100.0; } 
void actuator(double rDelta) 
{} 
void main(void) 

PID sPID; 
double rOut; 
double rIn; 
PIDInit ( &sPID ); 
sPID.Proportion = 0.5;
sPID.Derivative = 0.0; 
sPID.SetPoint = 100.0; 
for (;;) { 
rIn = sensor (); 
rOut = PIDCalc ( &sPID,rIn ); 
actuator ( rOut ); 
}
}
十四、开根号算法
单片机开平方的快速算法
  因为工作的需要,要在单片机上实现开根号的操作。目前开平方的方法大部分是用牛顿迭代法。我在查了一些资料以后找到了一个比牛顿迭代法更加快速的方法。不敢独享,介绍给大家,希望会有些帮助。
1.原理
因为排版的原因,用pow(X,Y)表示X的Y次幂,用B[0],B[1],...,B[m-1]表示一个序列,其中[x]为下标。
假设:
   B[x],b[x]都是二进制序列,取值0或1。
   M = B[m-1]*pow(2,m-1) + B[m-2]*pow(2,m-2) + ... + B[1]*pow(2,1) + B[0]*pow(2,0)
   N = b[n-1]*pow(2,n-1) + b[n-2]*pow(2,n-2) + ... + b[1]*pow(2,1) + n[0]*pow(2,0)
   pow(N,2) = M
   (1) N的最高位b[n-1]可以根据M的最高位B[m-1]直接求得。
   设 m 已知,因为 pow(2, m-1) <= M <= pow(2, m),所以 pow(2, (m-1)/2) <= N <= pow(2, m/2)
   如果 m 是奇数,设m=2*k+1,
   那么 pow(2,k) <= N < pow(2, 1/2+k) < pow(2, k+1),
   n-1=k, n=k+1=(m+1)/2
   如果 m 是偶数,设m=2k,
   那么 pow(2,k) > N >= pow(2, k-1/2) > pow(2, k-1),
   n-1=k-1,n=k=m/2
   所以b[n-1]完全由B[m-1]决定。
   余数 M[1] = M - b[n-1]*pow(2, 2*n-2)
   (2) N的次高位b[n-2]可以采用试探法来确定。
   因为b[n-1]=1,假设b[n-2]=1,则 pow(b[n-1]*pow(2,n-1) + b[n-1]*pow(2,n-2), 2) = b[n-1]*pow(2,2*n-2) + (b[n-1]*pow(2,2*n-2) + b[n-2]*pow(2,2*n-4)),
   然后比较余数M[1]是否大于等于 (pow(2,2)*b[n-1] + b[n-2]) * pow(2,2*n-4)。这种比较只须根据B[m-1]、B[m-2]、...、B[2*n-4]便可做出判断,其余低位不做比较。
   若 M[1] >= (pow(2,2)*b[n-1] + b[n-2]) * pow(2,2*n-4), 则假设有效,b[n-2] = 1;
   余数 M[2] = M[1] - pow(pow(2,n-1)*b[n-1] + pow(2,n-2)*b[n-2], 2) = M[1] - (pow(2,2)+1)*pow(2,2*n-4);
   若 M[1] < (pow(2,2)*b[n-1] + b[n-2]) * pow(2,2*n-4), 则假设无效,b[n-2] = 0;余数 M[2] = M[1]。
   (3) 同理,可以从高位到低位逐位求出M的平方根N的各位。
使用这种算法计算32位数的平方根时最多只须比较16次,而且每次比较时不必把M的各位逐一比较,尤其是开始时比较的位数很少,所以消耗的时间远低于牛顿迭代法。
3. 实现代码
这里给出实现32位无符号整数开方得到16位无符号整数的C语言代码。
/****************************************/
/*Function: 开根号处理                  */
/*入口参数:被开方数,长整型            */
/*出口参数:开方结果,整型              */
/****************************************/
unsigned int sqrt_16(unsigned long M)
{
     unsigned int N, i;
    unsigned long tmp, ttp;   // 结果、循环计数
    if (M == 0)               // 被开方数,开方结果也为0
        return 0;
    N = 0;
    tmp = (M >> 30);          // 获取最高位:B[m-1]
    M <<= 2;
    if (tmp > 1)              // 最高位为1
    {
        N ++;                 // 结果当前位为1,否则为默认的0
        tmp -= N;
    }
    for (i=15; i>0; i--)      // 求剩余的15位
    {
        N <<= 1;              // 左移一位
        tmp <<= 2;
        tmp += (M >> 30);     // 假设
        ttp = N;
        ttp = (ttp<<1)+1;
        M <<= 2;
        if (tmp >= ttp)       // 假设成立
        {
            tmp -= ttp;
            N ++;
        }
    }
    return N;
}

邀请您加入花生日记,自动搜索淘宝天猫优惠券!先领券,再购物,更划算!
-------------
下载链接:http://url.cn/5KRkJq6
-------------
复制这条信息∞YLNYVLO∞
打开花生日记,注册领取优惠券

邀请码:13705146482

c95134681866a4f76dd46ae68b47ea54.png

本文转自网络,版权归原作者,如果您觉得不好,请联系我们删除!

↓点击下方

“阅读原文”

查看更多

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246194.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 286. 墙与门 多源BFS和DFS

思路1&#xff1a; DFS&#xff0c;对于每个门进行一次DFS搜索&#xff0c;记录每个位置对每个门的距离&#xff0c;当有更小距离的门时更新这个数值 public void WallsAndGates(int[][] rooms) {for (int i 0; i < rooms.GetLength(0); i){for (int j 0; j < rooms[i]…

贝塞尔曲线

文章参考于&#xff1a;https://www.jianshu.com/p/0c9b4b681724 https://gameinstitute.qq.com/community/detail/129188 贝赛尔曲线的前世今生&#xff1a; 贝塞尔曲线&#xff0c;这个命名规则一眼看上去大概是一个叫贝塞尔的数学家发明的。但&#xff0c;贝塞尔曲线依据…

如何控制局域网网速_单臂路由|N1盒子(OpenWRT)单线多拨实现网速叠加

受于某些现实条件&#xff0c;有些同学苦于家里的网络带宽太小无法尽情冲浪。如何在不额外花钱升级宽带的情况下提升家里网络呢&#xff1f;且看一个盒子加路由器即可实现网络单线多拨&#xff0c;成倍提升网速完成网速叠加。题图是我家里的路由器加N1盒子。前置条件光猫有超级…

linux离线安装redmine_Linux 下一款非常好用的翻译软件

前面有一个半月的时间&#xff0c;我非常详细且非常基础的介绍了 Ubuntu 18.04 desktop 桌面系统的安装和基本使用&#xff0c;在知乎上也开了一个专栏《Linux 漫游之旅》&#xff0c;上面记录了所有的文章&#xff0c;这个专栏的目的呢是手把手教新接触 Linux 操作系统的朋友如…

vivo应用商店电脑版_VIVO应用商店代理商江湖的那些关系

VIVO应用商店代理商江湖的那些关系需要源文件清晰版本加微信wps007其他干货文章如何不花钱或者少花钱把ASO的活给干了&#xff1f;2020最新主流安卓应用市场ASO技巧以及注意事项App推广的高阶玩法&#xff0c;一箭双星&#xff01;今日头条定向优化技巧今日头条广告创意优化指南…

华为阅读下载的文件在哪里找_华为手机还要天天清理内存?1键关闭这2个设置,手机用到2035年...

阅读本文前&#xff0c;请您先点击上面的蓝色字体“科技荟 ”&#xff0c;再点击“关注”&#xff0c;这样您就可以继续免费收到最新文章了。每天都有分享。完全是免费订阅&#xff0c;请放心关注。 华为手机还要天天清理内存&#xff1f;1键关闭这2个设置&#xff0c;手机用到…

pyautogui 打包 运行 窗口_试试动态窗口管理器 dwm 吧

以不到 2000 标准行的代码写就的 dwm&#xff0c;是一个速度极快而功能强大&#xff0c;且可高度定制的窗口管理器。-- Adam Šamalk(作者)如果你崇尚效率和极简主义&#xff0c;并且正在为你的 Linux 桌面寻找新的窗口管理器&#xff0c;那么你应该尝试一下 动态窗口管理器(dy…

ArcMap 导入 wrl_flmic拍摄的素材如何无损导入电脑

点击上方“九尾短视频研习室” 可以订阅哦&#xff01;今天分享使用 iPhone 或者安卓版 filmic 拍摄的素材&#xff0c;如何无损导入到win 或 Mac 电脑中~01iPhone Mac使用 iPhone 和 Mac 的朋友&#xff0c;可以使用“隔空投送”无线传输&#xff0c;但是这个过程中&#xff…

LeetCode 97: 交错字符串

这里我们考虑用 s1和 s2的某个前缀是否能形成 s3 的一个前缀。 这个方法的前提建立于&#xff1a;判断一个 s3的前缀&#xff08;用下标 k表示&#xff09;&#xff0c;能否用 s1和 s2 的前缀&#xff08;下标分别为 i和 j&#xff09;&#xff0c;仅仅依赖于 s1 前 i个字符和…

苹果6发布时间_苹果秋季发布会将在北京时间9月16日举办

点击上方蓝字&#xff0c;关注我们苹果正式公布了苹果秋季发布会9月16日举办&#xff0c;届时国内可在五大平台上观看直播&#xff0c;据悉本次发布会将发布的产品有iPhone、ipad和Apple Watch等系列新品&#xff0c;那么这场发布会可以在哪看呢?下面小编带来了2020年苹果秋季…

安装ccs5.5总出现错误_《西游记》“斗法降三怪”,出现错误而补拍,观众总觉得改过结尾...

文|平小山86版《西游记》播出多年&#xff0c;每一年寒暑假都会在电视台重播&#xff0c;看了无数遍还是让观众乐在其中。后来无论是TVB版、浙版、还是张纪中版翻拍的《西游记》&#xff0c;都始终无法撼动它的经典地位。在86版《西游记》中有一集&#xff0c;就是在车迟国的“…

LeetCode面试题03. 数组中重复的数字

方法一&#xff1a;遍历数组 由于只需要找出数组中任意一个重复的数字&#xff0c;因此遍历数组&#xff0c;遇到重复的数字即返回。为了判断一个数字是否重复遇到&#xff0c;使用集合存储已经遇到的数字&#xff0c;如果遇到的一个数字已经在集合中&#xff0c;则当前的数字是…

涨跌因子计算器下载哪里下载_微信爱情指数计算器整蛊app下载_爱情指数计算器整蛊测试下载...

微信爱情指数计算器整蛊app是一款不错的爱情必备的计算器服务&#xff0c;让情侣们有一个很有意思的整蛊服务的App&#xff0c;喜欢的话快来下载吧。微信爱情指数计算器整蛊app介绍1、爱情指数计算器整蛊app是很有意思的一款爱情指数计算器软件2、操作起来也比较的简单&#xf…

如何用最简单的方式解释依赖注入?依赖注入是如何实现解耦的?

第一章&#xff1a;小明和他的手机 从前有个人叫小明 小明有三大爱好&#xff0c;抽烟&#xff0c;喝酒…… 咳咳&#xff0c;不好意思&#xff0c;走错片场了。应该是逛知乎、玩王者农药和抢微信红包 小明的三大爱好 我们用一段简单的伪代码&#xff0c;来制造一个这样的小…

closewait一直不释放_夏至太阳庆典 || 巨蟹座日蚀新月大释放蜡烛魔法仪式(寻找新的幸运儿)...

太阳庆典. 2020夏至 太阳庆典蜡烛魔法仪式夏至(MIDSUMMER)是四个至点之一&#xff0c;站在春分与秋分之间&#xff0c;并且成为光明力量的象征&#xff0c;因为在这一天白昼的时间是最长的&#xff0c;也代表阳性力量会在这一天达到顶端。许多古老文化会利用火元素来象征这一…

Postman status: 415_415亩!白云首宗农村土地规模化流转成功签约

6月3日钟落潭镇竹二村土地经营权流转签约仪式在白云产权中心顺利举行这是白云区首宗由政府主导的规模化土地流转↓↓↓<< 点击上方&#xff0c;观看完整视频 >>签约现场当天下午&#xff0c;竹二村经济联合社、广州市云供农业科技有限公司和广东三青农业科技有限公…

昆仑通态复制的程序可以用吗_一个PLC连接两个触摸屏例子,昆仑通态和普洛菲斯举例...

以昆仑通态触摸屏和普洛菲斯触摸屏说事啊。昆仑通态TCP7062普洛菲斯GP4402W在自动化设备中&#xff0c;如果设备跨度比较大的话&#xff0c;只有一个屏幕会让使用者不易看数据&#xff0c;要跑来跑去或者操作看不到动作点诸多问题&#xff0c;我做的项目中就有一个电柜只有一个…

Unity 中渲染顺序的理解以及一些坑点 以及2.5D游戏中的渲染排序解决方案

1.ZTest & ZWrite ZTest&#xff1a;深度测试&#xff0c;开启后测试结果决定片元是否被舍弃&#xff0c;可配置 ZWrite&#xff1a;深度写入&#xff0c;开启后决定片元的深度值是否写入深度缓冲&#xff0c;可配置 ZTest可设置的测试规则&#xff1a; ZTest Less&…

LeetCode 235. 二叉搜索树的最近公共祖先

题解 官方的题解就很清晰 https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-search-tree/solution/er-cha-sou-suo-shu-de-zui-jin-gong-gong-zu-xian--2/ 方法一&#xff1a;递归 public class Solution {public TreeNode LowestCommonAncestor(TreeN…

判断鼠标是否在元素上_能不能从大便上判断出一个人是否患有结肠癌?

通过大便的观察是可以怀疑是否得了结肠癌的&#xff0c;但并不是由于从大便上诊断患者得了癌症这个病。结肠癌症诊断金标准结肠癌的诊断的金标准做肠镜&#xff0c;通过肠镜进行观察&#xff0c;看是否有癌症。如果不明显&#xff0c;通过肉眼无法判断&#xff0c;一般要通过病…