题目链接:

ztr loves lucky numbers

 Time Limit: 2000/1000 MS (Java/Others)
 Memory Limit: 65536/65536 K (Java/Others)
问题描述
ztr喜欢幸运数字,他对于幸运数字有两个要求
1:十进制表示法下只包含4、7
2:十进制表示法下4和7的数量相等
比如47,474477就是
而4,744,467则不是 现在ztr想知道最小的但不小于n的幸运数字是多少
输入描述
有TT(1≤T≤10​5​​)组数据,每组数据一个正整数n,n<=10^18}1≤n≤10​^18​​
输出描述
有TT行,每行即答案
输入样例
2
4500
47
输出样例
4747
47 题意思路: 分情况讨论呗; AC代码
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long LL;
const int N=1e5+;
const LL mod=1e9+;
const double PI=acos(-1.0);
int a[],b[],vis1,vis2;
char s[];
int check(int x)
{
for(int i=;i<x/;i++)
{
if(b[i]<)return ;
else if(b[i]>)return ;
}
for(int i=x/;i<x;i++)
{
if(b[i]<)return ;
else if(b[i]>)return ;
else continue;
}
return ;
}
void print(int x1,int x2)
{
for(int i=;i<=x1;i++)printf("");
for(int i=;i<=x2;i++)printf("");
}
void print(int type)
{
if(type==)printf(""),vis1--;
else printf(""),vis2--;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%s",s);
if(s[]<''&&s[]>'')printf("");
else
{
int num=strlen(s);
for(int i=;i<num;i++)
b[i]=s[i]-'';
if(num&)
{
num++;
print(num>>,num>>);
}
else
{
if(!check(num))
{
num+=;
print(num>>,num>>);
}
else
{
vis2=vis1=(num>>);
for(int i=;i<num;i++)
{
if(b[i]>&&b[i]<)
{
print();
print(vis1,vis2);
break;
}
else if(b[i]==)print();
else if(b[i]<)
{
if(vis1)
{
print();
print(vis1,vis2);
break;
}
else
{
for(int j=;j<vis2;j++)printf("");
break;
}
}
else
{
LL ans1=,ans2=;
for(int j=;j<vis2+vis1-;j++)
{
if(j<vis2) ans1=ans1*+;
else ans1=ans1*+;
}
for(int j=i+;j<num;j++)ans2=ans2*+b[j];
if(ans2<=ans1&&vis1)print();
else
{
print();
print(vis1,vis2);
break;
}
}
}
}
}
}
printf("\n");
}
return ;
}

最新文章

  1. php取整函数ceil,floor,round,intval函数的区别
  2. position之fixed固定定位、absolute绝对定位和relative相对定位
  3. bzoj4400: tjoi2012 桥
  4. SSL/TLS 高强度加密: 常见问题解答
  5. js字符串函数(split、join、indexOf、substring)
  6. MapReduce从HBase读写数据简单示例
  7. cocos2dx中的假动作,又称动作回调函数
  8. MySQL锁系列3 MDL锁
  9. POJ 3393 Lucky and Good Months by Gregorian Calendar 模拟题
  10. N种方法妙讲LIS算法
  11. Linux kernel的中断子系统之(九):tasklet
  12. [Swift]LeetCode733. 图像渲染 | Flood Fill
  13. winfrom程序Datagridview列名问题
  14. VB Mouse Pointer
  15. Python 定值类
  16. 2018.12.12 codeforces 938E. Max History(组合数学)
  17. Spring IOC 容器源码分析
  18. HDU 3586 Information Disturbing(二分+树形dp)
  19. C# 日志记录工具类--LogHelper.cs测试
  20. Entity Framework 多对多查询的写法

热门文章

  1. 快速掌握RabbitMQ(四)——两种消费模式和QOS的C#实现
  2. ganglia-monitoring-centos-linux
  3. Golang Global Variable access
  4. 创建一个简单的 http 服务器
  5. js跳出循环的方法区别( break, continue, return ) 及 $.each 的(return true 和 return false)
  6. Linux的SOCKET编程详解(转)
  7. python实现的websocket总结 —— wspy
  8. aip接口中对url参数md5加密防篡改的原理
  9. Python常用的包
  10. strsep strpbrk