zoukankan      html  css  js  c++  java
  • 模拟poj1350

    http://poj.org/problem?id=1350

    题意:给你一个数,你用这个数重排序后的最大值减去最小值,当这个差值等于0或者6174时就结束,否则就用这个差值再排序再求差值。如果这个数不是四位数或者这个数的每位都相等时就输出"No!!",否则输出"Ok!! n times",n是前面直到那个数为0或者6174经过的次数。

    AC代码如下:

    #include<stdio.h>
    #include<stdlib.h>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int a[5];
    int main()
    {
    int n;
    while(~scanf("%d",&n))
    {
    int flag=0;
    if(n==-1)
    break;
    printf("N=%d: ",n);
    a[0]=n/1000;
    a[1]=n/100%10;
    a[2]=n/10%10;
    a[3]=n%10;
    int cnt=0;
    int ans=n;
    if(a[0]==a[1]&&a[1]==a[2]&&a[2]==a[3]||n>=10000||n<1000)
    printf("No!! ");
    else
    {
    while(1)
    {
    cnt++;
    a[0]=ans/1000;
    a[1]=ans/100%10;
    a[2]=ans/10%10;
    a[3]=ans%10;
    int q=0;
    for(int i=0; i<4; i++)
    if(a[i]==0)
    q++;
    else
    break;
    sort(a,a+4);
    int x=a[0]*1000+a[1]*100+a[2]*10+a[3];
    int y=a[3]*1000+a[2]*100+a[1]*10+a[0];
    while(q)
    {
    y/=10;
    q--;
    }
    ans=y-x;
    printf("%d-%d=%d ",y,x,y-x);
    if(ans==0||ans==6174)
    break;
    }
    printf("Ok!! %d times ",cnt);
    }
    }
    return 0;
    }

     
  • 相关阅读:
    Python统计后台数据
    jemter上传到服务器进行压测
    Python的文件读写
    Git中的Stash Changes和UnStash Changes用法
    算法集锦
    各种排序介绍
    SQLServerDAL的引用找不到
    抽象是什么?
    自己写的js分页
    动手写代码
  • 原文地址:https://www.cnblogs.com/xiejiamin/p/7102729.html
Copyright © 2011-2022 走看看