[关闭]
@PaulGuan 2016-10-18T13:15:13.000000Z 字数 488 阅读 742

I - Lucky Ticket 题解

算法 题解


题目大意

一个长度为n(2<=n<=50)的数中只有4和7的时候我们称其为幸运数字,现将这个数通过整除2分成两份,如果这个数是幸运数字,且两份的各位数的数字相加的和相等,则输出YES,反之输出NO。

分析

进行幸运数字判断然后累加判断大小即可。

代码

  1. #include <string>
  2. #include <iostream>
  3. using namespace std;
  4. int main()
  5. {
  6. int num,sum1=0,sum2=0;
  7. string n;
  8. cin>>num>>n;
  9. int i;
  10. for(i=0;i<num/2;i++)
  11. {
  12. if(n[i]!='4'&&n[i]!='7')
  13. {
  14. cout<<"NO"<<endl;
  15. return 0;
  16. }
  17. sum1+=n[i]-'0';
  18. }
  19. for(i=num/2;i<num;i++)
  20. {
  21. if(n[i]!='4'&&n[i]!='7')
  22. {
  23. cout<<"NO"<<endl;
  24. return 0;
  25. }
  26. sum2+=n[i]-'0';
  27. }
  28. if(sum1==sum2)
  29. cout<<"YES"<<endl;
  30. else
  31. cout<<"NO"<<endl;
  32. return 0;
  33. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注