[求神]两道小弟我如何编都得不出需求输出的有关问题,求大神给出准确的源程序
[求神]两道我怎么编都得不出需求输出的问题,求大神给出准确的源程序!
二.mirror number
时间限制: 1000ms
内存限制: 100000kB
描述
像1,101,2552这样对称的数,我们称它为mirror number,前10个mirror
number为1,2,3,4,5,6,7,8,9,11。以此类推。
请你求出第N个对称的数。
输入
第一行输入T,T组测试数据,接下去每组数据占一行,输入一个N(1<=N<=100000)。
输出
输出第N个mirror number,每组占一行。
样例输入
3
2
11
15
样例输出
2
22
66
二.取糖果
时间限制: 1000ms
内存限制: 10000kB
描述
女生节到了,ACM团队要给ACM的女生们发糖果啦,不过调皮的男生要写考考女生们一个小问题。
把n个糖果连成一排,要把这些糖果拿光,刚开始可以任取一个,接下去只能取“有相邻的糖果被取走”的糖果,例如刚开始有5个糖果,刚开始取走第3个,第二步只能取第2或第4个,以此类推。给出n,问将糖果取光的方法有多少种。两种取法只要有某次取的糖果不一样就视为不同。
输入
输入T组数据,第一行输入T。
接下去T行,每组数据输入一个整数n(1<=n<=100)。
输出
每组数据输出一行,为将糖果取光的方法数,结果模1000000007。
样例输入
2
1
2
样例输出
1
2
------解决方案--------------------
第一题:
二.mirror number
时间限制: 1000ms
内存限制: 100000kB
描述
像1,101,2552这样对称的数,我们称它为mirror number,前10个mirror
number为1,2,3,4,5,6,7,8,9,11。以此类推。
请你求出第N个对称的数。
输入
第一行输入T,T组测试数据,接下去每组数据占一行,输入一个N(1<=N<=100000)。
输出
输出第N个mirror number,每组占一行。
样例输入
3
2
11
15
样例输出
2
22
66
二.取糖果
时间限制: 1000ms
内存限制: 10000kB
描述
女生节到了,ACM团队要给ACM的女生们发糖果啦,不过调皮的男生要写考考女生们一个小问题。
把n个糖果连成一排,要把这些糖果拿光,刚开始可以任取一个,接下去只能取“有相邻的糖果被取走”的糖果,例如刚开始有5个糖果,刚开始取走第3个,第二步只能取第2或第4个,以此类推。给出n,问将糖果取光的方法有多少种。两种取法只要有某次取的糖果不一样就视为不同。
输入
输入T组数据,第一行输入T。
接下去T行,每组数据输入一个整数n(1<=n<=100)。
输出
每组数据输出一行,为将糖果取光的方法数,结果模1000000007。
样例输入
2
1
2
样例输出
1
2
------解决方案--------------------
第一题:
- C/C++ code
#include<iostream> using namespace std; char str[100]; char str1[50]; char str2[50]; int main() { int T,n; scanf("%d",&T); while(T--) { scanf("%d",&n); int a = 1; int cnt = 0; while(1) { if (cnt == n) { printf("%d\n", a - 1); break; } if (a < 10) { ++cnt; ++a; continue; } memset(str, 0, sizeof(str)); memset(str1, 0, sizeof(str1)); memset(str2, 0, sizeof(str2)); sprintf(str, "%d", a); int len = strlen(str); int k = len / 2; if(len % 2 == 0) { strncpy(str1, str, k); strcpy(str2, str + k); } else { strncpy(str1, str, k); strcpy(str2, str + k + 1); } if (strcmp(str1, str2) == 0) { ++cnt; } ++a; } } return 0; }