pat每日刷题计划--day74

PAT A1069 The Black Hole of Numbers

题目本身没有难度,注意读题,数字占四位,还有前后的空格

注意每一轮的数组和各个数字清空。评测机有时候有问题

sort(num+1,num+5)默认升序排列。左闭右开

刚开始结果错误,是因为数组开的不够,这时候没报错,但是怎么改都是0,这种错误注意避免。

#include
#include
#include<string.h>
#include
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("\n");
            if(anstemp==0 || anstemp==6174)
                return 0;
            temp=anstemp;
    }
    return 0;
}
View Code

 最大公约数

#include
#include
#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;
}
View Code

 这个在codeup评测是多输入需要修改,开始错误是因为没有换行。

你可能感兴趣的:(pat每日刷题计划--day74)