首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c难题解决方法

2012-04-20 
c难题二.mirror number时间限制: 1000ms? 内存限制: 100000kB? 描述? 像1,101,2552这样对称的数,我们称它

c难题
二.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




#include<stdio.h>
#include<string.h>
main()
{
int i,j,k,l,m,g;
prinf("请输入数据个数");
scanf("%d\n",&i);
j=i;
m=i;
int A[i];
for(i=0;i<j;i++)
{
scanf("%d\n",&A[i]);
}
int B[m];
k=strlen(j);
h=(k-1);
m=0;
char C[k],D[k];
for(i=0;i<j;i++)
{
C[k]=A[i];
for(k=0;k<h;k++)
{
D[k-2-h]=C[k];
}
l=stcmp(D,C);
if(l==0)
{
B[m]=D[k];
m++;
}
g=m;
}
printf("%d\n",B[g]);
}
帮忙改下错误。




[解决办法]
楼主你程序有多处错误,可以看出 C 基础还没学好,多看看书,参考下面程序。。

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;} 

热点排行