希望以后别人会看到你背后的努力,而不是只会看到你外表所呈现和他自己想象的结果。

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<string>
#include<cstring>
#include<cstdlib>
#include<stack>
#include<queue>
#include<set>
#include<vector>
#include<map>
#include<ctime>
#include<cctype>
#include<bitset>
#include<utility>
#include<sstream>
#include<iomanip>
#include<typeinfo>
#define inf 0x3f3f3f3f

typedef long long ll;
using namespace std;
priority_queue<int,vector<int>,greater<int> >q;
string sum="0";

bool check(int x){
	while(x){
		int ls=x%10;
		if(ls==2||ls==0||ls==1||ls==9)
			return true;
		x/=10;
	}
	return false;
} 
string turn(ll x){
	string ans="";
	while(x){
		int ls=x%10;
		char c=ls+'0';
		ans=ans+c;
		x/=10;
	}
	reverse(ans.begin(),ans.end());
	return ans;
}

string add(string a,string b){
	string ans;
	int na[110]={0},nb[110]={0};
	int cda=a.size();
	int cdb=b.size();
	for(int i=0;i<cda;i++)
		na[cda-i-1]=a[i]-'0';
	for(int i=0;i<cdb;i++)
		nb[cdb-i-1]=b[i]-'0';
	int mx=max(cda,cdb);
	for(int i=0;i<mx;i++){
		na[i]+=nb[i];
		na[i+1]+=na[i]/10;//进位
		na[i]%=10;//减十 
	}
	if(!na[mx])
		mx--;
	for(int i=mx;i>=0;i--)
		ans+=na[i]+'0';
	return ans; 
}

int main(){
	for(int i=1;i<=2019;i++){
		if(check(i)){
			ll lf=i*i;
			string ls=turn(lf*i);
			sum=add(sum,ls);
//			cout<<ls<<' '<<sum<<endl;
		}
			
	}
	cout<<sum<<endl;
	return 0;
}

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐