首页 > 软件 > 帮忙解读一下这个代码求求了求求了

帮忙解读一下这个代码求求了求求了

软件 2024-12-16

求大佬解释一下这个代码

经过分析,这段代码里面的fromPos和toPos完全没起作用。t也没有起作用。所以化简后的代码是

intfun(intn){
if(n==0)
return0;
inttot=0;
tot+=fun(n-1);
tot++;
tot+=fun(n-1);
returntot;
}

再把冗余的操作合并一下,得到

intfun(intn){
if(n==0)
return0;
return2*fun(n-1)+1;
}

这下简洁明了了。

这其实就是在算一个数列。这个数列的a(0)=0,然后a(n) = 2*a(n-1) + 1

请高手帮助我解释一下下面这段代码,对于PHP是菜鸟,求高手指点,感激不尽!

这是一个自定义函数调用 recommend(); if(isset($_POST['ids']) && $_GET["recommend"]){ 先是判断 POST 来的 ids不为空 同时 GET 值 recommend 大于或等于1 这是一个判断语句,查询$_POST['ids']过来的ID,跟recommend 参数比较 recommend =>1 有值。推荐成功。否则失败 if ( $this->posts_model->where(array('id'=>array('in',$ids)))->save(array('recommended'=>1))!==false) { $thi

求哪一位大神给解释一下 下面这个代码,越详细越好。

<%goodsql="select top 8 ID,GoodsStyle,GoodsName,StartProvince,StartCity,EndProvince,EndCity,Style,UserName from tb_GoodsMeg order by IssueDate desc"; try{ rs1=connection.executeQuery(goodsql); while(rs1.next()){ gcode=rs1.getInt("ID"); %> 定义一个sql查询语句,然后执行这个语句将结构赋值给rs1,然后循环rs1.将列明为ID的值赋值给gcode C语言课程设计,求高手帮我解释一下这个代码啊,打上注释!再给个流程图。给150分啊

哎,累死了。

#include

#include

#include

charnum[10][6]={"zero","one","two","three","four","five","six","seven","eight","nine"};

intparse(char*input)//就3中操作数要么是+号,要么是=号要么是要运算的数据【英文标示的】

{

inti=0;intmatch=0;

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

{

match=strcmp(input,num[i]);//比较用户输入和num数组中的值比如three是第3个元素,输入three刚好能返回3

if(match==0)returni;

}

return-1;

}//+,=返回-1数据返回对应的十进制数

structTStack//栈的结构体定义

{

intdata;

structTStack*next;

};

structTStack*root=0;//全局变量,栈的根节点

voidstack_push(intdata)//元素入栈

{

structTStack*x=(structTStack*)malloc(sizeof(structTStack));//实例化一个节点

x->data=data;//给节点赋值

x->next=root;//新节点指向根

root=x;//根从新赋值为根保证跟都指向最后一个元素

}

intstack_pop(int*data)//弹出栈顶元素并用data返回,栈非空返回1否则返回0

{

structTStack*x=root;//x=跟节点

if(!x)return0;//如果栈为空就返回0

root=x->next;//出栈后栈顶指针下移

*data=x->data;//用data返回栈顶元素的值

free(x);//释放栈顶元素的内存空间

return1;//返回操作成功

}

intSumFromStack(void)//把栈内所有的英文数据换成一个十进制数据。

{

intx=0,y=0,z=0,sum=0;

inttens[]={1,10,100,1000,10000};

do

{

x=stack_pop(&y);//y得到栈顶元素,x为返回状态

if(x==0)break;//栈中元素为空,就退出

sum+=y*tens[z++];//sum用来得到一个操作数例如threefive=35

}while(z<5);/*最大计算到五位数*/

returnsum;

}

voidprint(intC)//给定一个数值返回对应的英文形式如:256-->twofivesxi

{

charstr[256]="";size_ti=0;

sprintf(str,"%d",C);//c的%d形式存到str中比如C=258那么str[0]='2',str[1]='5',str[2]='8'

for(i=0;i

printf("%s",num[str[i]-'0']);//根据字符与‘0’的距离打印出数字对应的num中的字符串。

printf("\n");

}

intmain(void)

{

charstr[256]="";intA=0,B=0,x=0;//A,B用来记录2个要加的数的十进制x用来记录输入的是数据还是+,=号

do

{

A=0;B=0;root=0;x=0;

for(;;)

{

str[0]=0;

scanf("%s",str);//获取字符串的输入

x=parse(str);//根据输入的字符串转换成对应进制数

if(x<0)//parse返回-1有可能是+号,有可能是=号

{

if(str[0]=='+')A=SumFromStack();//遇到+号,那么肯定+左边的数据全入栈,可以用A得到一个翻译成十进制的运算数

if(str[0]=='=')

{

B=SumFromStack();//遇到=号那么肯定第二个家数也全部入栈了,B得到一个翻译成10进制的元算数据

break;

}

}

else//否则是运算数据那么就入栈

{

stack_push(x);

}

}

if(A||B)print(A+B);//如果A,B不同时为0,那么用print函数打印A+B对应的特殊编码字符如234->towthreefour

}while(A||B);//一旦A,B同时为0就退出

system("pause");

return0;

}

流程图中写出了详细的函数调用和程序思路。

楼主如果不给出程序的话,我自己动手写还方便点。人家的代码看着蛋疼。好在他的思路还是清晰好理解的。流程图附下,楼主赶紧去准备课程设计吧。

【楼主好好珍惜啊,注释也是一句一句写的,流程图一个一个在visio里面话的,看着你是真的想学东西,所以我弄的很详细。不是为了你的分数来的,而是我对程序的兴趣】

求大神帮忙解释一下这段数据库代码的意思,越详细越好,感激不尽!

select sum(chulishichang1) from: 查询chulishichang1属性值的和 formtable_main_854 t1: formtable_main_854是左表,起别名为t1 left join: 左连接 workflow_requestbase t2: workflow_requestbase是右表,起别名为t2 on t1.requestid=t2.requestid: 通过这两个属性连接两张表 where t2.currentnodetype =3: 筛选条件,右表t2的currentnodetype属性值 = 3

标签:信息技术 编程 编程语言 代码 CC++

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18