牛客網NOIP賽前集訓營-普及組(第七場) A 迴圈
阿新 • • 發佈:2018-11-04
題目連結:https://www.nowcoder.com/acm/contest/171/A
本題比較簡單(我竟然好意思說) 。主要是把c分成出c>0,c=0,c<0三類。不要忘記c=0和c<0(我因此改了半天 哭)尤其是op=3,a=b,c=0;另外c=0時,不要對c取餘和除。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include<algorithm> #include<iostream> #include<queue> using namespace std; int main() { long long a,b,c,m; int op; scanf("%lld%d%lld%lld",&a,&op,&b,&c); if(op==1) { if(a>b) { printf("0\n"); return 0; } if(c>0) { m=(b-a)/c+1; printf("%lld\n",m); } if(c<=0) { printf("-1\n"); return 0; } } if(op==2) { if(a<b) { printf("0\n"); return 0; } if(c>=0) { printf("-1\n"); return 0; } else { c=-1*c; m=(a-b)/c+1; printf("%lld\n",m); } } if(op==3) { if(c==0&&a!=b) { printf("-1\n"); return 0; } if(a==b) { printf("0\n"); return 0; } if((b-a)%c!=0||(b-a>0&&c<0)||(b-a<0&&c>0)) { printf("-1\n"); return 0; } if(c>0) m=(b-a)/c; else { c=-1*c; m=(a-b)/c; } printf("%lld\n",m); } return 0; }