陈尚涵 发表于 2022-10-28 20:41:00

又又又是一个敲击简单的程序

本帖最后由 陈尚涵 于 2022-10-28 21:17 编辑

题目:爱学习的小明
难度:t1-t2(敲击简单)
题目描述:作为小学生的小明学会了加减竖式,但是有些东西光靠竖式可能没那么快能算出来,你能不能帮他写个程序算呢?
输入:a和n,1<=a<10,1<=n<=10
输出:a+aa+aaa+aaaa+....(n个a)
输入样例:1 5
输出样例:12345
解释:
1 5
指1+11+111+1111+111111=12345
答案:**** Hidden Message *****

人造人 发表于 2022-10-28 20:52:51

a可以等于10 ?
等于10的时候是个什么情况?

陈尚涵 发表于 2022-10-28 20:59:34

人造人 发表于 2022-10-28 20:52
a可以等于10 ?
等于10的时候是个什么情况?

应该是1<=a<10,敲错了,望见谅{:10_257:}

傻眼貓咪 发表于 2022-10-28 21:20:00

人造人 发表于 2022-10-28 20:52
a可以等于10 ?
等于10的时候是个什么情况?

楼主好像修改了?a 小于 10

傻眼貓咪 发表于 2022-10-28 21:33:33

#include <iostream>

using std::cout, std::cin, std::endl;
int main(void) {
        unsigned a, n, sum;
        cin >> a >> n;
        for (int num = sum = a; n - 1; --n) {
                num = num * 10 + a;
                sum += num;
        }
        cout << sum << endl;
        return 0;
}

人造人 发表于 2022-10-28 21:37:18

傻眼貓咪 发表于 2022-10-28 21:20
楼主好像修改了?a 小于 10

是的

陈尚涵 发表于 2022-10-28 21:39:55

发布的帖子审核不过去。。。

傻眼貓咪 发表于 2022-10-28 22:05:34

人造人 发表于 2022-10-28 21:37
是的

{:10_254:}

dolly_yos2 发表于 2022-10-29 14:12:33

#include <iostream>
#include <vector>
#include <algorithm>
int main(){
    int a, n;
    std::cin >> a >> n;
    std::vector<unsigned int> buffer(n + 1, 0);
    std::generate_n(buffer.begin(), n, [&n, a]()->unsigned int{ return (n--) * a; });
    std::transform(buffer.cbegin(), buffer.cend(), buffer.begin(), [&n, &a](const auto& value)->unsigned int{
      a = value + n;
      return n = (a * 0x67) >> 10, a - ((n << 3) + (n << 1));
    });
    std::for_each(buffer.crbegin(), buffer.crend(), [&n](const auto& value){
      if(n || value) { n = 1; std::cout << value; }
    });
    return 0;
}

quark 发表于 2022-11-2 23:20:09

来看看。。。
页: [1]
查看完整版本: 又又又是一个敲击简单的程序