我的C语言学习日志(三)

本文记录了作者在尝试解决C语言编程问题——S=1+22+333+4444+…+n…n时遇到的挑战。作者最初试图通过循环直接计算每一项,但发现需要理解算法的重要性。最终,作者通过分解问题并逐步解决,成功编写出正确计算这个数列的代码。在解决问题的过程中,作者意识到初始化变量m的重要性,将其置于外循环中,从而修复了程序错误。
摘要由CSDN通过智能技术生成

C语言编程:S=1+22+333+4444+…+n…n
        这是在百度知道看到的一个问题。初看好像很简单,比1+2+3+…+99+100难不了多少,不过自己动手开始写问题就来了。
        一开始想用个循环把每一项的数字算出来,结果发现自己搞不定……这个式子每一项数字的位数和项数本身相关(第几项就有几位数),似乎很简单,但是仔细想才发现,不是n*10的问题,而是10的n次方的问题。我硬想通过一两个循环把每一项都算出来,可惜能力有限,越搞越头晕。
        只能另想办法了。不禁感叹算法果然是十分重要啊!自己一文科专业背景初学C,还没看过任何算法的书,现在这么有规律的数列都整不出来……
        后来干脆一步一步来,先算出“11…11”这样的数,保证1的数量和n相同,然后再乘以n就是每一项的数字,最后在把它们加起来。
        为了保证自己不出错,我打算干脆一小块一小块的写,心想只要我每一个步骤都用小段程序实现了,剩下的就是“组装”了。
        先实现“11…11”吧。写了段代码,编译、运行、成功!嘿嘿,总算往最后的胜利跨出了坚实的一步!

Code:
  1. #include <stdio.h>   
  2. i
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值