| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
这道题这么做,可以么? (内含WA的代码)不知道考虑哪儿有问题。 如何改正?
3x !
#include<iostream>
#include<stdlib.h>
using namespace std;
__int64 A[6];
__int64 flag[50];
int ten[7]={1,10,100,1000,10000,100000,1000000};
__int64 Power(__int64 a, int n) {
int i=1; __int64 t = a;
for(i=1;i<n;i++)a *= t;
return a;
}
int sumdig(int n) { //计算各位的数字之和
int sum = 0;
while(n) {
sum += n%10;
n /= 10;
}
return sum;
}
void setup(int n) {
int i,t;
memset(flag,0,sizeof(flag));
for(i=0;i <= ten[n]-1;i++) {
t = sumdig(i);
flag[t]++; //遍历0 - 99..9,flag存储对应数字之和出现的次数
}
for(i=0;i<50;i++){
if(flag[i]){
A[n] += Power(flag[i],n); //将其n次方
}
}
}
int main() {
int n,i;
for(i=1;i<=5;i++)
setup(i);
//for(i=1;i<=5;i++)cout<<A[i]<<endl;
cin>>n;
cout<<A[n/2]<<endl;
system("pause");
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator