这是鄙人的代码..不知道为什么总是wrong answer
希望牛人们找下我的错误..写代码给我就不用了。。
要的是发现下我程序中的错误.谢谢
#include
using namespace std;
int main()
{
int n;
cin>>n;
while(n!=0){
int d1=n%10; int c1=(n-d1)/10%10;int b1=(n-d1-10*c1)/100%10; int a1=n/1000;
int sum1=a1+b1+c1+d1;
int d2=n%16; int c2=(n-d2)/16%16;int b2=n/256;
int sum2=b2+c2+d2;
int d3=n%12; int c3=(n-d3)/12%12;int b3=(n-d3-12*c3)/144%12;int a3=n/1728;
最大的错误:sum1,sum2,sum3的求法是错的,你是看着sample来解题的吧,的确2992这样处理没问题,但是假设出现了位数不是4位的sky数呢?比如5位的sky数就处理错误了,像sum1这样的话就只处理到了前4位。还有一个不算是错误,但是处理麻烦了:比如sum1处理的时候,int d1=n%10; int c1=(n-d1)/10%10;int b1=(n-d1-10*c1)/100%10; int a1=n/1000;int sum1=a1+b1+c1+d1;int的除是整除,没必要减去之前算出来的数:int d1=n%10; int c1=n/10%10;int b1=n/100%10; i