666/001-洛谷P1957 口算练习题

        刷题网址在洛谷上,感兴趣的同学可以上去看看~

链接:https://www.luogu.com.cn/problem/P1957

 

 

#include<iostream>
#include<cstring>    //strlen统计字符数头文件
#include<cmath>      //算术运算函数头文件
#include<cstdio>     //标准化输入输出头文件
using namespace std;

int main(){
	char ys0,ys1[10];        //ys0保存计算字符    ys1[10]用于输入字符还是数值判断
	int n,y0,x=0,y,ans,x0,js;    //n个数    y0,x0,ans用于保存计算数值 js判断总计算长度
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>ys1;
		if(ys1[0]>='a' && ys1[0]<='z'){		//判断第一个输入是否为字符 
			ys0=ys1[0];		//保留第一个字符ys0 
			cin>>x>>y;		//ys1字符,故输入x,y 
			y0=y;			//保留整数值y0,x0 
			x0=x;
		}
		else{
			cin>>y;			//ys1数值,做x用,故输入y 
			for(int j=0;j<strlen(ys1);j++){
				//pow(10,strlen(ys1)-j-1),例如:[123]第一个1为百位100,而2为十位10,故次方数变化跟随j-1走 
				//ys1[j]-48,把对于的字符变为对于数值如字符'1'转为数值1 
				x=x+pow(10,strlen(ys1)-j-1)*(ys1[j]-48);	//用于把字符型转整数值 例如:字符[123]转整数值123 
				y0=y;		//保留整数值y0,x0 
				x0=x;
			}
		}
		
		if(ys0=='a'){		//判断计算方式 
			printf("%d+%d=%d\n",x0,y0,x0+y0);
			ans=x0+y0;		//保留计算结果 
		}
		else if(ys0=='b'){
			printf("%d-%d=%d\n",x0,y0,x0-y0);
			ans=x0-y0;
		}
		else if(ys0=='c'){
			printf("%d*%d=%d\n",x0,y0,x0*y0);
			ans=x0*y0;
		}
		
		//字符数值统计,如果输入是0或计算结果负数怎么统计		 
		if(ans>0){		//结果若为负数,提前统计	 
			js=2;		//提前统计计算符号和等于号    x + y = z 	中的+ =号 
		}
		else{
			js=3;
			ans=-1*ans;
		} 
		if(x0==0)		//输入若为0,提前统计 
			js++;
		if(y0==0)
			js++;
		while(x0!=0 || y0!=0 || ans!=0){	//确定所有数值个数 
			if(x0!=0){    //判断x0位数如123,三位,下面同
				x0/=10;
				js++;
			}
			if(y0!=0){
				y0/=10;
				js++;
			}
			if(ans!=0){
				ans/=10;
				js++;
			}
		} 
		cout<<js<<endl;    //输出总计算长度
		js=0;    //为下次继续计数长度做准备赋值0
		x=0;    //为下次输入值做准备赋值0
	}
	
	system("pause");
}

题目思路:

        1.输入数值n组

        2.第一种:有确定计算符号,先输入字符

        3.第二种:承接上一次计算方式,没有再次输入字符,此时需要重点判断

                且:由于输入是字符数值,如何转换为整数数值,也是一个重点思路

        4.根据判断,直接计算即可

        5.总计算长度,需要看输入是否为0,和计算结果是否为负数,都会影响长度

### 回答1: CentOS 7启动httpd服务失败可能有多种原因,以下是一些常见的解决方法: 1. 检查httpd配置文件是否正确:可以使用命令`httpd -t`检查httpd配置文件是否正确,如果有错误,需要修改配置文件。 2. 检查端口是否被占用:可以使用命令`netstat -tlnp`查看端口是否被占用,如果被占用需要释放端口或修改httpd配置文件中的端口号。 3. 检查httpd服务是否安装:可以使用命令`rpm -qa | grep httpd`查看httpd服务是否安装,如果没有安装需要先安装httpd服务。 4. 检查httpd服务是否启动:可以使用命令`systemctl status httpd`查看httpd服务是否启动,如果没有启动需要使用命令`systemctl start httpd`启动httpd服务。 5. 检查SELinux是否开启:如果SELinux开启,可能会导致httpd服务启动失败,需要使用命令`setenforce 0`关闭SELinux,或者修改SELinux策略。 以上是一些常见的解决方法,如果以上方法都无法解决问题,可以查看httpd服务日志文件,找到具体的错误信息,然后根据错误信息进行解决。 ### 回答2: CentOS 7上的httpd服务启动失败可能有多种原因。以下列出了一些常见问题和解决方法: 1. 端口被占用 当httpd试图占用已被其他程序占用的端口时会启动失败。此时可以通过使用`netstat -tunlp`命令检查端口占用情况,然后杀死占用该端口的进程及时释放端口。或者修改httpd的配置文件,将端口修改为未被占用的端口。 2. 配置文件错误 有时httpd服务的配置文件中可能出现错误,例如语法错误或路径错误等等。在启动httpd服务之前,可以使用`apachectl configtest`命令进行检查,如果输出“Syntax OK”,则表示配置文件没有错误。如果出现错误,则需要根据错误提示进行相应修改。 3. 依赖关系问题 如果httpd依赖的其他程序或库缺失,也会导致启动失败。可以通过使用`systemctl status httpd.service`命令来查看httpd服务状态,如果输出“Failed to start”或“Loaded: failed”,则需要检查依赖关系是否完整。 4. SELinux问题 当SELinux启用时,有时会导致httpd服务启动失败。在这种情况下,可以在SELinux上禁用httpd服务,或者修改httpd配置文件解决SELinux相关的问题。 5. 用户权限问题 httpd服务启动可能需要特定的用户权限。如果使用的用户权限不够,则无法启动。可以尝试使用root用户启动httpd服务,或者根据需要修改相应的用户权限。 ### 回答3: CentOS 7中的Apache HTTP服务器(httpd)是一个常见的Web服务器,如果遇到httpd服务启动失败的情况,可能会影响服务器正常的工作和对外服务的稳定性。本文将提供一些可能会导致httpd服务启动失败的原因,并给出相应的解决方法。 1. 端口被占用 如果端口被其他进程占用,httpd服务就无法启动。可以通过 netstat -tulpn 命令查看端口占用情况,并杀死占用该端口的进程。如果端口被 httpd 服务自身占用,可以通过 systemctl restart httpd 命令重启 httpd 服务;如果是其他进程占用了端口,可以通过 kill 命令杀死该进程或更改 httpd.conf 文件配置,将 httpd 服务的端口改为其他空闲端口,重新启动。 2. 配置文件错误 httpd 服务的配置文件通常是 /etc/httpd/conf/httpd.conf,如果其中存在语法错误、权限问题或者其它配置错误,可能会导致 httpd 服务启动出错。可以通过将 httpd.conf 文件备份后删掉,重新执行 yum install httpd 命令安装 httpd 服务,然后手动修改 httpd.conf 文件,逐个检查每个配置项是否正确,确认无误后重启 httpd 服务。 3. SELinux 问题 SELinux 是 CentOS 7中提供的一种安全模块,它可以对系统文件和应用程序进行安全管控。如果 SELinux 配置不正确,可能会阻止 httpd 服务正常启动。可以通过修改 /etc/selinux/config 文件中 SELINUX=disabled 来暂时关闭 SELinux,然后重新启动 httpd 服务;或者一个更优的方式是,根据日志确定问题原因,使用命令 semanage 或者 setsebool 等工具将相关目录或者配置加入到 SELinux 许可列表中,重新启动 httpd 服务,以恢复服务正常工作。 4. 防火墙问题 如果你的 CentOs 7 服务器启用了防火墙,有可能会导致 httpd 服务启动失败。可以通过检查防火墙相关配置来确定问题原因,解决方案是修改防火墙规则,将端口 80 或者 443 等 httpd 服务需要的端口放行,重新启动 httpd 服务。 总之,当遇到 httpd 服务启动失败时,不要慌张,可以先通过日志或者执行命令查看错误信息,找到错误原因,然后根据错误原因一步一步解决问题。在解决问题过程中注意备份原始配置文件,以免造成不必要的损失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值