您的位置:首页 > 其它

华为2017 校园招聘

2017-03-03 21:23 211 查看
第一题,给一个整数,求这个整数加1后的整数。整数多长不知,用string
#include <iostream>
#include <string>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>

using namespace std;

int main()
{
string str;
cin >> str;
int len = str.length();
int flag = 0;
if(str[len - 1] == '9')
{
str[len - 1] = '0';
for(int i = len - 2;i >= 0;i--)
{

if(str[i] != '9')
break;
else
str[i] = '0';
//cout << str[i] << endl;
}
if(str[0] == '0')
flag = 1;

}
else
str[len - 1] = str[len - 1] + 1;
if(flag)
cout << flag;
for (int i = 0; i < len; ++i)
{
cout << str[i];
}
cout << endl;
}

第二题,还没有搞清楚怎么转……貌似我的理解和题目意思不同

第三题,怀疑用gets不给过,比赛后换了一种输入方法

#include <stdio.h>
#include <string.h>
#include <string>
#include <iostream>
using namespace std;
const int maxn = 1000000;

char p[maxn][maxn];

void ReverseWoords(char *str)
{
int k = 0;
scanf("%[^\n]]",str);
char *s;
s = strtok(str," ");
int len = strlen(s);
for(int i=0;i<len;i++)
p[k][i] = s[i];
k++;
while(s != NULL)
{
s = strtok(NULL," ");
if(s != NULL)
{
len = strlen(s);

for(int i=0;i<len;i++)
p[k][i] = s[i];
k++;
}

}
for (int i = k - 1; i > 0 ; --i)
{
for (int j = 0; p[i][j] ; ++j)
{
printf("%c",p[i][j]);
}
printf(" ");
}
for (int j = 0; p[0][j] ; ++j)
{
printf("%c",p[0][j]);
}
printf("\n");
}

int main()
{
char str[maxn];
ReverseWoords(str);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  校园招聘 华为