> 文档中心 > C++魔法串

C++魔法串

【问题描述】
小 N 最近在沉迷数学问题。

对于一个数字串 S,如果可以将它划分成两个数字 A、B,满足:

在这里插入图片描述

那么小 N 就认为该划分是一个“好划分”。如对于数字串“11297”,(11,297)就是一个“好划分”。

如果一个数字串 S 至少有两个“好划分”,那么小 N 就认为 S 是一个“魔法串”。如数字串“1335702375”就是一个“魔法串”,其“好划分”有(1,335702375)和(133,5702375)。

现在给定正整数 N,小 N 需要你帮她求出一个长度恰好为 N 的“魔法串”S,如果无解请输出“QwQ”(不带引号)。

【输入】
一行一个正整数 N。

【输出】
一行一个长度恰好为 N 的“魔法串”S,如果无解请输出“QwQ”(不带引号)。

【输入输出样例】

magic.in19magic.out1621296000000000000
【数据范围】对于 30%的数据:1 ≤ N ≤ 10。对于 50%的数据:1 ≤ N ≤ 35。对于 100%的数据:1 ≤ N ≤ 100
#include #define pr printfusing namespace std;const int INF=0x1f1f1f1f;inline int read(){char ch;int x,f=1;for(ch=getchar();ch<'0'||ch>'9';ch=getchar()) if(ch=='-') f*=-1;for(x=0;ch>='0'&&ch<='9';ch=getchar()) x=x*10+ch-'0';return x*f;}int main(){int n=read(),i;if(n<=4){printf("QwQ");return 0;}else if(n%3==2) printf("73584"),n-=5;else if(n%3==0) printf("324000"),n-=6;else printf("1621296"),n-=7;for(i=1;i<=n;i++) printf("0");return 0;}

在这里插入图片描述

天天赞天天看!明天再见,拜拜!