表达式输出"/>
C语言刷题系列——3.a+aa+...+aaa..aa表达式输出
一、 题目要求
二、步骤
1.总体分析
输入两个正整数,第一个是“要打印出来的”,第二个是“个数”。
这样我们可以分两种情况:①当第二个输入的数字为1时,输出的结果就是n = n
②当大于1时,则需要循环,循环要求每次把上次循环的数*10再加上第一次输入的那个数即可。由于“+”比等号左边的个数少一个,所以打印最后一个数的时候,不同时打印“+”
2.框架:输入两个数(中间的实现略)最后打印
还需再创建一个变量t,用来存第一次输入的值(用于上面②中每次循环最后加上的内个数)
#include<stdio.h>
int main()
{int a, n,;int sum = 0;int t;scanf("%d%d", &a, &n);t = a;if (n == 1){printf("%d", t);}else//即n>1时{//这里n>1时,要输出“+”//并求出所有数相加,即“=”右边的值 sum}//最后输出“=***”printf("=%d",sum);return 0;}
3.n>1时 (else内部)
“=”左边总共有n个数相加,只有最后一个数最后直接输出这个数即可,对于前面的,输出每个数的时候要在其后面接上“+”
for (int i = 1; i < n; i++){if (i == 1){printf("%d+", a);}a = a * 10 + t;//因为for里循环的次数的n-1sum += a;if (i < n - 1){printf("%d+", a);}else{printf("%d", a);}}sum = sum + t;
4.在最前面加上“判断输入的为整数”
if(a>0&&n>0)
5.最终代码
#include<stdio.h>
int main()
{int a, n,;int sum = 0;int t;scanf("%d%d", &a, &n);t = a;if (a > 0 && n > 0){if (n == 1){printf("%d", t);}elsefor (int i = 1; i < n; i++){if (i == 1){printf("%d+", a);}a = a * 10 + t;sum += a;if (i < n - 1){printf("%d+", a);}else{printf("%d", a);}}sum += t;printf("=%d", sum);}return 0;
}
更多推荐
C语言刷题系列——3.a+aa+...+aaa..aa表达式输出
发布评论