my code using System; using System.Diagnostics; using System.Drawing; using System.Globalization; namespace Program; public static class Program {
public static void Main() { int number = Convert.ToInt32(Console.ReadLine()); string number_plus = Convert.ToString(number + 1); string number_minus = Convert.ToString(number - 1); char[] massiv_plus = number_plus.ToCharArray(); char[] massiv_minus = number_minus.ToCharArray(); string str_minus; string str_plus; while (massiv_minus.Length < 6) { str_minus = String.Join("", massiv_minus.Reverse()); str_minus += '0'; massiv_minus = str_minus.ToCharArray(); massiv_minus.Reverse(); } while (massiv_plus.Length < 6) { str_plus = String.Join("", massiv_plus.Reverse()); str_plus += '0'; massiv_plus = str_plus.ToCharArray(); massiv_plus.Reverse(); } int a1_plus = Convert.ToInt32(massiv_plus[0]); int a2_plus = Convert.ToInt32(massiv_plus[1]); int a3_plus = Convert.ToInt32(massiv_plus[2]); int b1_plus = Convert.ToInt32(massiv_plus[3]); int b2_plus = Convert.ToInt32(massiv_plus[4]); int b3_plus = Convert.ToInt32(massiv_plus[5]); int a1_minus = Convert.ToInt32(massiv_minus[0]); int a2_minus = Convert.ToInt32(massiv_minus[1]); int a3_minus = Convert.ToInt32(massiv_minus[2]); int b1_minus = Convert.ToInt32(massiv_minus[3]); int b2_minus = Convert.ToInt32(massiv_minus[4]); int b3_minus = Convert.ToInt32(massiv_minus[5]); if ((Math.Abs(a1_plus + a2_plus + a3_plus) == Math.Abs(b1_plus + b2_plus + b3_plus)) || Math.Abs(a1_minus + a2_minus + a3_minus) == Math.Abs(b1_minus + b2_minus + b3_minus)) Console.WriteLine("Yes"); else Console.WriteLine("No"); } } import sys num = str(sys.stdin.readline().split()[0]) a = int(num[:3]) b = int(num[3:]) - 1 c = int(num[3:]) + 1 sum0 = sum([int(num) for num in str(a)]) sum1 = sum([int(num) for num in str(b)]) sum2 = sum([int(num) for num in str(c)]) if abs(sum0 - sum1 == 0) or abs(sum0 - sum2 == 0) or abs(sum1 - sum0 == 0) or abs(sum2 - sum0 == 0): print("Yes") else: print("No") a = input() row = [] for i in a: row.append(i) for i in range(len(row)): row[i] = int(row[i]) suml = row[0] * 100 + row[1] * 10 + row[2] sumr = row[3] * 100 + row[4] * 10 + row[5] if suml - sumr == 1 or sumr - suml == 1: print('yes') else: print('no') a = input() minussum=0 plussum=0 b =[0:3] c =[3:6] c=int(c) minus = c-1 plus = c+1 minus=str(minus) plus=str(plus) for i in minus: i=int(i) minussum+=i for i in plus: i=int(i) plussum+=i n=0 for i in b: i=int(i) n+=i if n == minussum or n == plussum: print("Yes") else: print("No")
Help please) Why re? Edited by author 13.09.2022 23:21 import java.util.*; public class LuckyNumber{ public static void main(String args[]){ Scanner in = new Scanner(System.in); int x = in.nextInt(); int a1,a2,a3,b1,b2,b3; a1 = x/100000; a2 = (x/10000)%10; a3 = (x/1000)%10; b1 = (x/100)%10; b2 = (x/10)%10; b3 = x%10; if((a1+a2+a3) == (b1+b2+b3)) System.out.println("Lucky Number"); else if(a1+a2+a3-(b1+b2+b3)>1 ||(b1+b2+b3)-(a1+a2+a3)>1) { System.out.println("prostoi bilet"); } else System.out.println("Lucky Number budet sleduwii ili prediduwi bilet"); } } You should output "Yes" or "No" and nothing else #include<iostream> using namespace std; int sum(int temp); int main(){ int a[6]; scanf("%1d%1d%1d%1d%1d%1d",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5]); int first=a[0]*100+a[1]*10+a[2]; int second=a[3]*100+a[4]*10+a[5]; if(a[3]==9&&a[4]==9&&a[5]==9){ cout<<"No"; return 0; } int pre=second-1; int next=second+1; if((sum(pre)==(a[0]+a[1]+a[2]))||(sum(next)==(a[0]+a[1]+a[2]))){ cout<<"Yes"; }else{ cout<<"No"; }
return 0; } int sum(int temp){ int count=0; do{ count+=(temp%10); temp/=10; }while(temp/10!=0); count+=temp; return count; } Am I stupid or what? code seems to be working var x,a,b:integer; function sum(x:integer): INTEGER; var s:integer; begin while x>0 do begin s:=s+x mod 10; x:=x div 10; end; sum:=s; end; begin read (x); a:=x div 1000; b:=x mod 1000; if (sum(a)=sum(b+1)) or (sum(a)=sum(b-1)) then writeln ('Yes') else writeln ('No'); end. Pay attention to inc and dec in your code. You should do first x+1 and x-1. I hope you understand me Проверяйте пограничные ситуации, когда номер билета на входе 000000 или 999999 номера 000000 и 999999 проверять не надо,потому что сумма первых трёх цифр не отличается на единицу от суммы последних трёх цифр(по условию). New tests have been added. 86 authors have lost their AC. вообще не могу понять что не так. проходят пробные тесты,проходят тесты которые нашла в обсуждениях. если не трудно может покидаете тесты, плииз... var a,a1,a2,s1,s,ap,al,sm1p,sm2p,sm3p,smap,sm1l,sm2l,sm3l,smal,s2,s3:Integer; begin ReadLn(a); a1:=a+1; a2:=a-1; ap:=a1 div 1000; al:=a1 mod 1000; sm1p:=ap div 100; sm2p:=ap mod 100 div 10; sm3p:=ap mod 10; smap:=sm1p+sm2p+sm3p; sm1l:=al div 100; sm2l:=al mod 100 div 10; sm3l:=al mod 10; smal:=sm1l+sm2l+sm3l; if smal=smap then Writeln('YES') else begin ap:=a2 div 1000; al:=a2 mod 1000; sm1p:=ap div 100; sm2p:=ap mod 100 div 10; sm3p:=ap mod 10; smap:=sm1p+sm2p+sm3p; sm1l:=al div 100; sm2l:=al mod 100 div 10; sm3l:=al mod 10; smal:=sm1l+sm2l+sm3l; if smal=smap then Writeln('YES') else WriteLn('NO'); end; end. I think my code is right but it is not getting accepted. Can anyone help me figure out what is wrong ? The python code is as follows: n=input() sum1=0 sum2=0 for i in range(0,3): sum1=sum1+(int(n[i])) for i in range(3,6): sum2=sum2+(int(n[i])) if(1==(abs(sum1-sum2)) or 0==sum1-sum2): print("Yes") else: print("No") Pls help me solve the issue Edited by author 23.11.2017 13:45 #include<iostream> using namespace std; int main() { int x, y; int sum1 = 0, sum2 = 0; char n = 'n'; cin >> x; int max = x + 1; int min = x - 1; for (int i = 0; i <3; i++) { y = max % 10; max = max / 10; sum1 += y; } for (int i = 0; i < 3; i++) { y = max % 10; max = max / 10; sum2 += y; } if (sum2 == sum1) { n = 'y'; }
y = 0; sum1 = 0; sum2 = 0; for (int i = 0; i <3; i++) { y = min % 10; min = min / 10; sum1 += y; } for (int i = 0; i <3; i++) { y = min % 10; min = min / 10; sum2 += y; } if (sum2 == sum1) { n = 'y'; } if (n=='n') { cout << "no"; } else { cout << "yes"; } return 0; } #include <iostream> long int a,b,c,d,e,f,n,z,x,a1,a2; using namespace std; void main() { cin >>a; n=a%10; f=a%100; f=f/10; e=a%1000; e=e/100; d=a%10000; d=d/1000; c=a%100000; c=c/10000; b=a%1000000; b=b/100000; if ((n==9)||(f==9)||(e==9)) { z=(e+f+n)+1%10; } else { z=e+f+n; } if ((d==9)||(c==9)) { x=(b+c+d)+1%10; } else { x=b+c+d; } a1=z-x; a2=x-z; if ((a1==1)||(a2==1)) { cout <<"Yes"; } else { cout <<"No"; } } my code: #include <stdio.h> #include <math.h> #include <string.h> #include <conio.h> int SL (int n) { int q=n/1000, i, s=0; while (q>10) { s+=q%10; q/=10; } s+=q; return s; } int SR (int n) { int s=0,q=n%1000; while (q>10) { s+=q%10; q/=10; } s+=q; return s; } void main() { int S=0,T=0,N; scanf ("%d", &N); if ((SR(N+1)==SL(N+1))||(SR(N-1)==SL(N-1))) printf ("Yes"); else printf ("No"); } I remaked a bit your programm and it got acceped. What you need to change is SL and SR functions: int SL(int n){ int q=n/1000, i, s=0; while(q!=0){ s+=q%10; q/=10; }
return s; } int SR (int n){ int s=0, q=n%1000; while (q!=0) { s+=q%10; q/=10; }
return s; } Thanks for your code, i didn't need to write that myself :) I got AC on VB .NET 2010 !!! Write me on mail saucy_smile@mail.ru and I'll send you the source code :-) Edited by author 24.08.2016 08:07 Edited by author 24.08.2016 08:08 //Timus1493 #include <iostream> using namespace std; //Creates a copy and does not change the argument int sum_of_3(int num) { int result = 0;
for (int i = 1; i <= 3; i++) { result += num % 10; num /= 10; } return result; } int main () { int num; cin >> num;
int digit = num % 10, right = sum_of_3(num), left = sum_of_3(num / 1000);
if ((left > right && digit == 9) || (left < right && digit == 0)) cout << "No \n"; else cout << "Yes \n"; cout << num; return 0; } Fix output as task required - remove spaces after Yes and No, remove "cout << num;". 445219- No 4+4+5 = 13 2+1+9 = 12 13 and 12 = 1 Yes? Why not? "I'm one step from happiness," Vova thought, "either the previous or the next ticket is lucky." Is he right? So, you have to check if any of (445219-1) and (445219+1) is lucky. In a different IDE with all boundary conditions checked, it's working but it shows run-time error at test #8, not sure why. import sys def compute_sum(n): return int(n[0]) + int(n[1]) + int(n[2]) - int(n[3]) - int(n[4]) - int(n[5]) n = input() s2 = 1 s3 = 1 if int(n) == 0 or int(n) == 999999: print ('Yes') sys.exit() s1 = compute_sum(n) if len(str(int(n))) < 6: d = 6 - len(str(int(n))) s2 = compute_sum('0' * d + str(int(n) - 1)) s3 = compute_sum('0' * d + str(int(n) + 1)) else: s2 = compute_sum(str(int(n) - 1)) if len(str(int(n) + 1)) <= 6: s3 = compute_sum(str(int(n) + 1)) if abs(s2) == 0 or abs(s3) == 0: print ("Yes") else: print ("No") I disagree with the result in example 2 to the task 1493. According to the problem, must output "Yes", because 445219 in the summation of the digits gives 13 and 12. These numbers differ by 1. The example says "No". When checking the solution 2, the test system writes "Wrong answer". Please fix the problem or explain me the condition. You are asked to answer IF THE PREVIOUS OR THE NEXT TICKETS ARE LUCKY, NOT IF THE SUMS OF DIGITS DIFFER BY 1. this is my solution #include <iostream> #include <cmath> using namespace std; int main() { long long a,b,s=0,d=0,k=0,jama,kk=0,ss=0,dd=0; cin>>b; a=b; b=b-1; while(b-1>0) { jama=b%10; k++; if(k<=3) { s+=jama; } else{ d+=jama; } b/=10; } int i=0; if(s-d==0 ) { i++; } a=a+1; int joma; while(a>0) { joma=a%10; kk++; if(kk<=3) { ss+=joma; } else{ dd+=joma; } a/=10; } if(ss-dd==0 ) { i++; } if(i>0) { cout<< "Yes"; } else cout<< "No"; return 0; } [delete] Edited by author 02.11.2015 00:38 Edited by author 02.11.2015 00:38 |
|