void run(char * str) {
int len = strlen(str);
char* left = str;
char* right = str + len - 1;
while (left<right) {
char tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
int main() {
char arr[100] = { 0 };
scanf("%s\n", arr);
run(arr);
printf("%s\n", arr);
return 0;
}
第二题
计算a+aa+aaa+aaaa+aaaaa的前五项之和,其中a是一个数字
列如
2+22+222+2222+22222
int main() {
int a, b = 0;
scanf("%d%d", &a,&b);
int sum = 0,i,ret=0;
for (i = 0; i < b; i++) {
ret = ret * 10 + a;
sum += ret;
}
printf("%d\n", sum);
return 0;
}
第三题:
水仙花数,打印0-100000所有的水仙花数、
#include <math.h>
int main() {
int i = 0;
for (i = 0; i <= 10000; i++) {
int n = 1;
int tmp = i;
int sum = 0;
//求该数有多少位
while (tmp /= 10) {
n++;
}
tmp = i;
//计算每一位的n次方之和,和sum 比如153=1^3+5^3+3^3 ,6=6^1,1634=1^4+6^4+3^4+4^4=1634.
while (tmp) {
sum += pow(tmp % 10, n);
tmp /= 10;
}
//如果该数等于原 就输出。
if (i == sum) {
printf("%d\n", i);
}
}
return 0;
}
原文:https://blog.51cto.com/u_15100290/2703682