首页 > 编程语言 > 详细

超经典算法题

时间:2021-04-14 00:19:14      阅读:20      评论:0      收藏:0      [点我收藏+]
字符串逆序函数如何去写?
题目内容,写一个函数,要求能够逆序打印字符串的内容。

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!