好玩的五次方

来源:互联网 发布:知乎 波兰裔南非飞行员 编辑:程序博客网 时间:2024/04/28 10:06

题目描述

给你一些数,让你找出一个最小未在这些数中出现的正整数。并且求出这个数的五次方。
输入

第一行输入一个n,代表有n个数。(n<1000000)
第二行输入n个数,每个数小于10000000000。
输出

输出结果

示例输入

3
1 7 2
示例输出

243
看到过的人还少,还用的JAVA,突然感觉好难,看了一下网上的题解,再一想,10^9没用啊,这个要求的数最大才是1000000,其实思路就是哈西一下,找到这个数,再大数乘一下,没用过这种大数,也是涨知识了,

#include<stdio.h>#include<bits/stdc++.h>using namespace std;int ls[1000010];int f[3000];int main(){    int n, i, b,a;    scanf("%d",&n);    for(i = 0; i < n; i++)    {        scanf("%d",&b);        if(b <= 1000000)          ls[b] = 1;    }    for(i = 1; i <= 1000000; i++)    {        if(!ls[i])        {            break;        }    }    a = i;     int j, c;     f[0] = 1;    for(i = 0; i < 5; i++)    {       c = 0;       for(j = 0;j < 3000; j++)        {            int s = f[j] * a + c;              f[j] = s%10;              c = s/10;        }    }    for(j=3000-1;j>=0;j--)    if(f[j])    break;    for(i = j; i >= 0; i--)    {        printf("%d",f[i]);    }    return 0;}
0 0
原创粉丝点击