#include

//求阶乘
long factorial(int n)
{
int i;
long result=1;
for(i=1; i<=n; i++)
{
result *= i;
}
return result;
}
// 求累加的和
long sum(long n)
{
int i;
long result = 0;
for(i=1; i<=n; i++)
{
//嵌套调用
result += factorial(i);
}
return result;
}

int main()
{
printf("1!+2!+...+9!+10! = %ld\n", sum(10));
return 0;
}

11个回答

result *= i就是result = result * i

a*=b
a=a*b

a+=b
a=a+b

result = result * i;

result = result * i;

result = result * i;

a = 2;<------->a = 2;
a *= 2<------->a = a * 2;
a <<= 2<---->a = a << 2;
.....

result = result * i

result=result*i

MyEclipse和Tomcat的问题 求哪位大神帮忙指教一下拜托拜托急急急
## 这是Action包里的 ## package com.bus.cnu.action; ## ## import com.carver.ptm.core.persistence.base.BaseDao; ## import java.util.List; ## import javax.servlet.http.HttpServletRequest; ## ## import org.apache.struts2.ServletActionContext; ## ## import com.bus.cnu.service.*; ## import com.bus.cnu.vo.BusRoundExceptionManage; ## public class DoorExceptionManageAction extends BaseAction { ## ## private static final long serialVersionUID=1L; ## private IBusRoundExceptionManageService busroundexceptionmanageservice; ## ## public String QuaryAll(){ ## HttpServletRequest request=ServletActionContext.getRequest(); ## List<BusRoundExceptionManage> brems=busroundexceptionmanageservice.queryAll(); ## request.setAttribute("BREMS", brems); ## return "success"; ## } ## ## public String GetBREM(){ ## HttpServletRequest request=ServletActionContext.getRequest(); ## Integer bremid=Integer.parseInt(request.getParameter("bremid")); ## BusRoundExceptionManage brem=busroundexceptionmanageservice.GetBusRoundExceptionById(bremid); ## request.setAttribute("BREM", brem); ## return "success"; ## } ## ## public String GetUpdateBREM(){ ## HttpServletRequest request=ServletActionContext.getRequest(); ## Integer bremid=Integer.parseInt(request.getParameter("bremid")); ## BusRoundExceptionManage brem=busroundexceptionmanageservice.GetBusRoundExceptionById(bremid); ## request.setAttribute("BREM", brem); ## return "success"; ## } ## ## public String Update(){ ## HttpServletRequest request=ServletActionContext.getRequest(); ## Integer bremid=Integer.parseInt(request.getParameter("bremid")); ## String reason=request.getParameter("manage"); ## BusRoundExceptionManage brem=busroundexceptionmanageservice.GetBusRoundExceptionById(bremid); ## brem.setReason(reason); ## if(busroundexceptionmanageservice.Update(brem)){ ## return "success"; ## } ## return "fail"; ## } ## ## public IBusRoundExceptionManageService getBusroundexceptionmanageservice() { ## return busroundexceptionmanageservice; ## } ## ## public void setBusroundexceptionmanageservice( ## IBusRoundExceptionManageService busroundexceptionmanageservice) { ## this.busroundexceptionmanageservice = busroundexceptionmanageservice; ## } ## ## public static long getSerialversionuid() { ## return serialVersionUID; ## } ## ## ## } 这是Struts里的 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <include file="struts-ajax.xml" /> <package name="leo" extends="struts-default"> <action name="login" class="LoginAction"> <result name="input">/common/login.jsp</result> <result name="login.main">/common/main.jsp</result> </action> <action name="QueryAll" class="DoorExceptionManageAction" method="QuaryAll"> <result name="success">/dispatcher/door_abnormal.jsp</result> </action> <action name="GetBREM" class="DoorExceptionManageAction" method="GetBREM"> <result name="success">/dispatcher/door_abnormal_detail.jsp</result> </action> <action name="GetUpdateBREM" class="DoorExceptionManageAction" method="GetUpdateBREM"> <result name="success">/dispatcher/abnormal_handle.jsp</result> </action> <action name="Update" class="DoorExceptionManageAction"> <result name="success">/dispatcher/abnormal_handle_next.jsp</result> <result name="fail">/dispatcher/door_abnormal_detail.jsp</result> </action> </package> </struts> 这是报错截图 ![图片说明](https://img-ask.csdn.net/upload/201506/23/1435068126_529569.jpg)
Handler 如何跨方法 取值？ handler 拿到 Message 后赋给全局变量，在其它方法中打印这个全局变量就是空 NULL，求大神指教！！！。
private String getStr; public void menthodA(String str){ String url = "http://10.0.0.12:8080/testa/test.do" Map<String, String> map = new HashMap<String, String>(); map.put("id", ""); OkHttpManager ok = new OkHttpManager(); ok.postComplexForm(url, map, new OkHttpManager.goBackJsonString() { @Override public void onResponse(String result) { Message msg = new Message(); msg.what = 2; msg.obj = result; handler.sendMessage(msg); } }); handler = new Handler(){ @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); if (msg.what == 2){ getStr = (String)msg.obj; Log.d("AAA","Print " + getStr);//字符串可以拿到msg } } }; Log.d("AAA","Print_1 " + getStr);//在这里字符串为空！！ } // 我错在哪儿了？怎样才能将这个hanlder 拿到的msg交个主线程中的全局变量！感谢！

String s="18a1a2";(s是十六进制数组成的字符串) byte[] result = new byte[3] ; 怎么实现s每两位对应一个字节，即: result[0]=(0x)18； result[1]=(0x)a1； result[2]=(0x)a2； 请哪位大神指教一下，谢谢
C语言小白问题求大神指教
#include <stdio.h> #include <math.h> unsigned fun(int w) { int a; int i; i=1; a=w; while(a==0) { a=a/10; i++; } w=w%pow(10,i); return w; } unsigned main() { int w; printf("please enter a number:\n"); scanf("%d",&w); printf("the result is:%u\n",fun(w)); return 0; } 若w是n (n≥2)位的整数，函数求出w的后n-1位的数作为函数值返回。 自己写的算法，所以特别想实现，看过网上的答案，没太明白...... 求详细解释

#include <cctype> #include <cstdlib> #include <cstring> #include <fcntl.h> #include <unistd.h> #include <scsi/sg.h> #include <sys/ioctl.h> #include <linux/hdreg.h> #include <string> #include <fstream> static bool get_disk_name(std::string & disk_name) { disk_name.c_str(); std::ifstream ifs("/etc/mtab", std::ios::binary); if (!ifs.is_open()) { return(false); } char line[4096] = { 0 }; while (!ifs.eof()) { ifs.getline(line, sizeof(line)); if (!ifs.good()) { break; } const char * disk = line; while (isspace(disk[0])) { ++disk; } const char * space = strchr(disk, ' '); if (NULL == space) { continue; } const char * mount = space + 1; while (isspace(mount[0])) { ++mount; } if ('/' != mount[0] || ' ' != mount[1]) { continue; } while (space > disk && isdigit(space[-1])) { --space; } if (space > disk) { std::string(disk, space).swap(disk_name); break; } } ifs.close(); return(!disk_name.empty()); } static void trim_serial(const void * serial, size_t serial_len, std::string & serial_no) { const char * serial_s = static_cast<const char *>(serial); const char * serial_e = serial_s + serial_len; while (serial_s < serial_e) { if (isspace(serial_s[0])) { ++serial_s; } else if ('\0' == serial_e[-1] || isspace(serial_e[-1])) { --serial_e; } else { break; } } if (serial_s < serial_e) { std::string(serial_s, serial_e).swap(serial_no); } } static bool get_disk_serial_by_way_1(const std::string & disk_name, std::string & serial_no) { serial_no.clear(); int fd = open(disk_name.c_str(), O_RDONLY); if (-1 == fd) { return(false); } struct hd_driveid drive = { 0 }; if (0 == ioctl(fd, HDIO_GET_IDENTITY, &drive)) { trim_serial(drive.serial_no, sizeof(drive.serial_no), serial_no); } close(fd); return(!serial_no.empty()); } static bool scsi_io( int fd, unsigned char * cdb, unsigned char cdb_size, int xfer_dir, unsigned char * data, unsigned int data_size, unsigned char * sense, unsigned int sense_len ) { sg_io_hdr_t io_hdr = { 0 }; io_hdr.interface_id = 'S'; /* CDB */ io_hdr.cmdp = cdb; io_hdr.cmd_len = cdb_size; /* Where to store the sense_data, if there was an error */ io_hdr.sbp = sense; io_hdr.mx_sb_len = sense_len; /* Transfer direction, either in or out. Linux does not yet support bidirectional SCSI transfers ? */ io_hdr.dxfer_direction = xfer_dir; /* Where to store the DATA IN/OUT from the device and how big the buffer is */ io_hdr.dxferp = data; io_hdr.dxfer_len = data_size; /* SCSI timeout in ms */ io_hdr.timeout = 5000; if (ioctl(fd, SG_IO, &io_hdr) < 0) { return(false); } /* now for the error processing */ if (SG_INFO_OK != (io_hdr.info & SG_INFO_OK_MASK) && io_hdr.sb_len_wr > 0) { return(false); } if (io_hdr.masked_status || io_hdr.host_status || io_hdr.driver_status) { return(false); } return(true); } static bool get_disk_serial_by_way_2(const std::string & disk_name, std::string & serial_no) { serial_no.clear(); int fd = open(disk_name.c_str(), O_RDONLY); if (-1 == fd) { return(false); } int version = 0; if (ioctl(fd, SG_GET_VERSION_NUM, &version) < 0 || version < 30000) { close(fd); return(false); } const unsigned int data_size = 0x00ff; unsigned char data[data_size] = { 0 }; const unsigned int sense_len = 32; unsigned char sense[sense_len] = { 0 }; unsigned char cdb[] = { 0x12, 0x01, 0x80, 0x00, 0x00, 0x00 }; cdb[3] = (data_size >> 8) & 0xff; cdb[4] = (data_size & 0xff); if (scsi_io(fd, cdb, sizeof(cdb), SG_DXFER_FROM_DEV, data, data_size, sense, sense_len)) { /* Page Length */ int page_len = data[3]; /* Unit Serial Number */ trim_serial(data + 4, page_len, serial_no); } close(fd); return(!serial_no.empty()); } static bool parse_serial(const char * line, int line_size, const char * match_words, std::string & serial_no) { const char * serial_s = strstr(line, match_words); if (NULL == serial_s) { return(false); } serial_s += strlen(match_words); while (isspace(serial_s[0])) { ++serial_s; } const char * serial_e = line + line_size; const char * comma = strchr(serial_s, ','); if (NULL != comma) { serial_e = comma; } while (serial_e > serial_s && isspace(serial_e[-1])) { --serial_e; } if (serial_e <= serial_s) { return(false); } std::string(serial_s, serial_e).swap(serial_no); return(true); } static void get_serial(const char * file_name, const char * match_words, std::string & serial_no) { serial_no.c_str(); std::ifstream ifs(file_name, std::ios::binary); if (!ifs.is_open()) { return; } char line[4096] = { 0 }; while (!ifs.eof()) { ifs.getline(line, sizeof(line)); if (!ifs.good()) { break; } if (0 == ifs.gcount()) { continue; } if (parse_serial(line, ifs.gcount() - 1, match_words, serial_no)) { break; } } ifs.close(); } static bool get_disk_serial_by_way_3(const std::string & disk_name, std::string & serial_no) { serial_no.c_str(); const char * hdparm_result = ".hdparm_result.txt"; char command[512] = { 0 }; snprintf(command, sizeof(command), "sudo hdparm -i %s | grep SerialNo > %s", disk_name.c_str(), hdparm_result); if (0 == system(command)) { get_serial(hdparm_result, "SerialNo=", serial_no); } unlink(hdparm_result); return(!serial_no.empty()); } static bool get_disk_serial_by_way_4(std::string & serial_no) { serial_no.c_str(); const char * lshw_result = ".lshw_result.txt"; char command[512] = { 0 }; snprintf(command, sizeof(command), "sudo lshw -class disk | grep serial > %s", lshw_result); if (0 == system(command)) { get_serial(lshw_result, "serial:", serial_no); } unlink(lshw_result); return(!serial_no.empty()); } static bool get_disk_serial_number(std::string & serial_no) { if (0 != getuid()) { return(false); } std::string disk_name; if (get_disk_name(disk_name)) { if (get_disk_serial_by_way_1(disk_name, serial_no)) { return(true); } if (get_disk_serial_by_way_2(disk_name, serial_no)) { return(true); } if (get_disk_serial_by_way_3(disk_name, serial_no)) { return(true); } } if (get_disk_serial_by_way_4(serial_no)) { return(true); } return(false); } static void test_1() { std::string serial_no; if (get_disk_serial_number(serial_no)) { printf("serial_number: [%s]\n", serial_no.c_str()); } else { printf("get serial number failed\n"); } } static void test_2() { std::string disk_name; if (get_disk_name(disk_name)) { printf("disk_name:[%s]\n", disk_name.c_str()); { std::string serial_no; get_disk_serial_by_way_1(disk_name, serial_no); printf("get_serial_by_way_1:[%s]\n", serial_no.c_str()); } { std::string serial_no; get_disk_serial_by_way_2(disk_name, serial_no); printf("get_serial_by_way_2:[%s]\n", serial_no.c_str()); } { std::string serial_no; get_disk_serial_by_way_3(disk_name, serial_no); printf("get_serial_by_way_3:[%s]\n", serial_no.c_str()); } } { std::string serial_no; get_disk_serial_by_way_4(serial_no); printf("get_serial_by_way_4:[%s]\n", serial_no.c_str()); } } int main(int argc, char * argv[]) { printf("---------------\n"); test_1(); printf("---------------\n"); test_2(); printf("---------------\n"); return(0); } ``` ``` 主要是想问一下那个最终存储了硬盘序列号的变量是哪个？我对linux下的C不是很熟，求帮忙~谢谢~
vue中使用graphql，刚接触，不太明白，往各位大神指教
XXX.vue ``` import apollo from '../configuration/list.js' .... methods:{ handleList: function() { this.\$apollo.query({ query: apollo, variables: { model: this.chooseModelCode || '', name: this.moduleInputName || '', pageSize: this.pageInfo.pageSize || 10, pageNum: this.pageInfo.pageNum || 1 } }).then(res => { console.log(res.data) this.Parse(res.data.result) console.log(res.data.result) }).catch(err => { console.log(err) }) }, } ``` list.js ``` import gql from 'graphql-tag' const apollo = gql `query result(\$model: String,\$name: String,\$pageSize: Int!,\$pageNum: Int!){ result(model:\$model,name:\$name,pageSize:\$pageSize,pageNum:\$pageNum){ list{ name gmtCreate model } pageSize pageNum } }` export default apollo ``` 应该是哪里写的不对，老是报错 Network error: Server response was missing for query 'result'.

#include &lt;cstring&gt; using namespace std; template &lt;typename T&gt; class tree_node_t { public: string &to_string(string *result, int prefix = 0); void set_data(const T &data); protected: T m_data; }; 错误报告说：‘string’不是一个类型名 真的莫名其妙！string换成std::string也不行。 vs编译得好好的，不知道g++怎么的，老是这些莫名其妙的错误？哪位高手能指教一下啊？谢谢！
java 程序运行出现String index out of range: -1异常请各位大神指教
SSH框架报错找不到action，求大神指教

``` for l=1:M % 训练支持向量机 Wc=[Ws;Wt]; Wc=Wc/(sum(Wc))'; svm = svmTrain('svc_c',X,Y,ker,C,Wc); Ydt = svmSim(svm,xt); Yt=sign(Ydt); Result = ~~abs(Yt-yt) ; % 错误分类显示为1 p=Wt'.*Result; e(l) = sum(p); ```
httpclient 只能抽取第一页数据
HttpClient client = HttpClients.createDefault(); HttpGet get = new HttpGet("http://qichacha.com/search_hangye?industryCode=A&industryorder=0&p=1"); HttpResponse response = client.execute(get); HttpEntity entity = response.getEntity(); InputStream is=entity.getContent(); String result=EntityUtils.toString(entity,"utf-8"); // getHref(result); System.out.println(result); 网址1：http://qichacha.com/search_hangye?industryCode=A&industryorder=0&p=1 网址2：http://qichacha.com/search_hangye?industryCode=A&industryorder=0&p=2 为什么输入两个网址抓取的数据一样？求哪位大神指教，谢谢！
android静默安装问题，求大神们进来指点。

RT，原题在这：https://oj.leetcode.com/problems/zigzag-conversion/ 很简单的一个程序，就是横排字符串改成折线字符串，然后横排输出 我的程序在VS2012上 debug模式下自己测试没找到错误，但是提交上去之后， 就报Runtime-error，百思不得其解，求大神指教解救！ ``` char *convert(char *s, int nRows) { long len=strlen(s); char *result=NULL; long i,j,k; i=1;j=0;k=0; result=(char *)malloc((len+1)); if(nRows<=1||len==0) {return s;} else { if(result!=NULL) { for(i=1,j=0,k=0;i<=nRows;i++)//这个是判断要求折成几行的，就循环几次 { for(k=i-1;k<len;k+=(nRows*2-2))//每行的循环，从最左侧元素开始往后计算 { result[j++]=s[k]; if(i>1 && i<nRows) { if((k+nRows*2-i*2)<len) { result[j++]=s[k+nRows*2-i*2];//每一行的折线元素的位置是之前的直线元 //素位置加上nRows*2-i*2，这个公式没错 } } } } result[j]='\0'; } return result; } } ``` 当前显示输入是 "A",1 没有给出输出，错误信息只有RE，别的都没有

《MySQL 性能优化》之理解 MySQL 体系结构

python自动下载图片

【前言】 　　收到一封来信，赶上各种事情拖了几日，利用今天要放下工作的时机，做个回复。 　　2020年到了，就以这一封信，作为开年标志吧。 【正文】 　　您好，我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。 　　先说一下我的基本情况，高考失利，不想复读，来到广州一所大专读计算机应用技术专业。学校是偏艺术类的，计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...

【CSDN编者按】1月2日，阿里巴巴发布《达摩院2020十大科技趋势》，十大科技趋势分别是：人工智能从感知智能向认知智能演进；计算存储一体化突破AI算力瓶颈；工业互联网的超融合；机器间大规模协作成为可能；模块化降低芯片设计门槛；规模化生产级区块链应用将走入大众；量子计算进入攻坚期；新材料推动半导体器件革新；保护数据隐私的AI技术将加速落地；云成为IT技术创新的中心 。 新的画卷，正在徐徐展开。...

Python+OpenCV实时图像处理

2020年一线城市程序员工资大调查

python爬取百部电影数据，我分析出了一个残酷的真相
2019年就这么匆匆过去了，就在前几天国家电影局发布了2019年中国电影市场数据，数据显示去年总票房为642.66亿元，同比增长5.4%；国产电影总票房411.75亿元，同比增长8.65%，市场占比 64.07%；城市院线观影人次17.27亿，同比增长0.64%。 看上去似乎是一片大好对不对？不过作为一名严谨求实的数据分析师，我从官方数据中看出了一点端倪：国产票房增幅都已经高达8.65%了，为什...

Windows可谓是大多数人的生产力工具，集娱乐办公于一体，虽然在程序员这个群体中都说苹果是信仰，但是大部分不都是从Windows过来的，而且现在依然有很多的程序员用Windows。 所以，今天我就把我私藏的Windows必装的软件分享给大家，如果有一个你没有用过甚至没有听过，那你就赚了????，这可都是提升你幸福感的高效率生产力工具哦！ 走起！???? NO、1 ScreenToGif 屏幕，摄像头和白板...

C++(数据结构与算法):62---搜索树（二叉搜索树、索引二叉搜索树）

AI 没让人类失业，搞 AI 的人先失业了

2020年，冯唐49岁：我给20、30岁IT职场年轻人的建议

B站是个宝，谁用谁知道???? 作为一名大学生，你必须掌握的一项能力就是自学能力，很多看起来很牛X的人，你可以了解下，人家私底下一定是花大量的时间自学的，你可能会说，我也想学习啊，可是嘞，该学习啥嘞，不怕告诉你，互联网时代，最不缺的就是学习资源，最宝贵的是啥？ 你可能会说是时间，不，不是时间，而是你的注意力，懂了吧！ 那么，你说学习资源多，我咋不知道，那今天我就告诉你一个你必须知道的学习的地方，人称...