PAT A1069 The Black Hole of Numbers
题目本身没有难度,注意读题,数字占四位,还有前后的空格
注意每一轮的数组和各个数字清空。评测机有时候有问题
sort(num+1,num+5)默认升序排列。左闭右开
刚开始结果错误,是因为数组开的不够,这时候没报错,但是怎么改都是0,这种错误注意避免。

#include<stdio.h> #include<iostream> #include<string.h> #include<algorithm> int wei[5]; int answei[10];//数组开小怎么都返回0 int ans; using namespace std; int main() { int firstnum=0; int secondnum=0; int temp; scanf("%d",&temp); int count=0; while(1) { memset(wei,0,sizeof(wei)); memset(answei,0,sizeof(answei)); count=0; while(temp>0) { wei[++count]=temp%10; temp=temp/10; } sort(wei+1,wei+5); firstnum=0; secondnum=0; for(int i=1;i<=4;i++) { firstnum=firstnum*10; secondnum=secondnum*10; firstnum+=wei[5-i]; secondnum+=wei[i]; } ans=firstnum-secondnum; count=0; int anstemp=ans; while(ans>0) { answei[++count]=ans%10; ans=ans/10; } /*for(int i=1;i<=4;i++) printf("%d",answei[i]);*/ for(int i=4;i>=1;i--) printf("%d",wei[i]); printf(" - "); for(int i=1;i<=4;i++) printf("%d",wei[i]); printf(" = "); for(int i=4;i>=1;i--) printf("%d",answei[i]); printf(" "); if(anstemp==0 || anstemp==6174) return 0; temp=anstemp; } return 0; }
最大公约数

#include<stdio.h> #include<iostream> #include<string.h> using namespace std; int gcd(int a,int b) { if(a<b) { int temp=a; a=b; b=temp; } if(b==0) return a; return gcd(b,a%b); } int main() { int a,b; cin>>a>>b; printf("%d",gcd(a,b)); return 0; }
这个在codeup评测是多输入需要修改,开始错误是因为没有换行。