HDOJ 1597,1058

来源:互联网 发布:淘宝客店铺活动推广 编辑:程序博客网 时间:2024/05/21 10:57

又做了一天的大水题。写一起把。

HDU1597

代码:

#include<iostream>#include<cmath>using namespace std;int main(){    int k;    __int64 x,n;    scanf("%d",&k);    while( k--){           scanf("%I64d",&n);           x=int(sqrt(n*2.0));           while(x*x+x>=2*n) x--;           x=n-(x*x+x)/2;            printf("%I64d\n",(x-1)%9+1);    }    return 0;}



HDU 1058  枚举+排序

#include<iostream>#include<algorithm>#include<cmath>using namespace std;#define INF 0x7fffffffint f[10000];int main(){    __int64 t;    int i,j,k,m,s,flag;    s=0; flag=1;    for( i=0;i<=12&&flag;i++)     for( j=0;j<=14&&flag;j++)      for( k=0;k<=20&&flag;k++)       for( m=0;m<=31&&flag;m++){            t= (__int64) ( pow(7.0,i)*pow(5.0,j)*pow(3.0,k)*pow(2.0,m) );            if( t<0||t>INF ){ break; flag=0;}  //t<0是怕溢出            else{ f[s++]=t;             }       }     sort(f,f+s);    while( scanf("%d",&i)&&i){            printf("The %d",i);            if( i%10==1&&i%100!=11)               printf("st");           else if(i%10==2&&i%100!=12)                printf("nd");           else if(i%10==3&&i%100!=13)                printf("rd");           else               printf("th");             printf(" humble number is %d.\n",f[i-1]);    }        return 0;}