zoukankan      html  css  js  c++  java
  • 循环


       题目描述

       牛牛正在学习See语言程序设计,今天他学到了循环语句。
       See语言中的循环语句和C/C++风格类似,为以下格式:
    for (i = a; i op b; i += c);
       在上述语句中,a b c是整数,op是关系运算符,可能是 <=, >=或者 !=,分别代表小于等于,大于等于、不等于。
       循环的执行过程和C语言类似:
       1、首先执行赋值语句i = a
       2、计算布尔表达式i op b的值,如果为假跳到步骤4,否则继续步骤3
       3、执行赋值语句i += c, 既i = i + c,然后跳到步骤2
       4、循环结束

       需要注意的是,循环变量i的类型是See语言中的整型数,它的取值范围可以很大,不会像C语言中的int一样存在溢出
       牛牛希望计算出步骤3(i += c)会执行多少次
     
       输入仅一行四个整数a, op, b, c
       其中op = 1代表<=, op = 2代表>=, op = 3代表!=
     
       对于50%的数据,0 <= a, b, c <= 100
       对于100%的数据, -10<= a, b, c <= 109
    输出一行一个整数代表步骤3执行的次数,如果循环永远不会终止(死循环)则输出-1

    题解:只要先判断op的值,在分类讨论就行了。


    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        int op , a , b , c;
        cin>>a>>op>>b>>c;
        if(op == 1)
    	{
            if(a > b)
    		{
    			puts("0");
    			return 0;
    		}
            if(c <= 0)
    		{
    			puts("-1");
    			return 0;
    		}
            int ans = (b - a)/c + 1;
            cout<<ans<<endl;
        }
        else if(op == 2)
    	{
            if(a < b)
    		{
    			puts("0");
    			return 0;
    		}
            if(c >= 0)
    		{
    			puts("-1");
    			return 0;
    		}
            int ans = (b - a)/c + 1;
            cout<<ans<<endl;
        }
        else
    	{
            if(a == b)
    		{
    			puts("0");
    			return 0;
    		}
            if((a < b && c <= 0) || (a > b && c >= 0))
    		{
    			puts("-1");
    			return 0;
    		}
            if((b - a) % c != 0)
    		{
    			puts("-1");
    			return 0;
    		}
            printf("%d
    ",(b - a) / c);
        }
        return 0;
    }
    

      

     
  • 相关阅读:
    JID 2.0 RC4 发布,高性能的 Java 序列化库
    FBReaderJ 1.6.3 发布,Android 电子书阅读器
    Arquillian 1.0.3.Final 发布,单元测试框架
    JavaScript 的宏扩展 Sweet.js
    Hypertable 0.9.6.5 发布,分布式数据库
    JRuby 1.7.0 发布,默认使用 Ruby 1.9 模式
    httppp 1.4.0 发布,HTTP响应时间监控
    Redis 2.6.0 正式版发布,高性能K/V服务器
    OfficeFloor 2.5.0 发布,IoC 框架
    XWiki 4.3 首个里程碑发布
  • 原文地址:https://www.cnblogs.com/chen-1/p/9860887.html
Copyright © 2011-2022 走看看