C++计算M=11+22+…+NN,直到N等于15为⽌,输出N和对应的M。要求⽤for语句

战神以轲 |浏览536次
收藏|2019/09/27 07:06

满意回答

2019/09/27 07:17

按题目要求的程序如下:#include <iostream>using namespace std;int main(){ int i,n; int sum=0; for(i=1;i<=15;i++) { cout<<i<<i<<" " ; if(i<10) sum+=i*10+i; else sum+=i*100+i; } n=i-1; cout<<endl<<"N="<<n<<" M="<<sum;程序的运行结果如下:

ygl990951

其他回答(2)
  • 给你个思路,外循环枚举N从1到15,内循环用for控制 i 从11到NN。(另一处的肯定不对,11加到1515怎么会是1350?1515都比他大)#include<bits/stdc++.h>using namespace std;int sw(int n)//需要判断 i 位数{ int a=0; while(n) { a++; n=n/10; } return a;}int main(){ int i,n,sum=0; for(n=1;n<=15;n++) { for(i=11;i<=n*pow(10,sw(n))+n;i+=11) { sum+=i; } } cout<<"sum="<<sum;//printf("%lld",sum); return 0;}
    回答于 2019/09/27 07:56
  • // 代码如下:#include <stdio.h>#include <string.h>#include <stdlib.h>// 数字转换( 15 -> 1515 )int GetDoubleNumber(int orignalNum){ char szMaxNum[10] = {0}; _itoa(orignalNum, szMaxNum, 10); strcat(szMaxNum, szMaxNum); return atoi(szMaxNum);}int main(){ // input int iSum = 0; int iMaxNum = 0; printf("请输入N: "); scanf("%d", &iMaxNum); // calculate for (int i=1; i<=iMaxNum; ++i) { iSum += GetDoubleNumber(i); } // output printf("11 + 22 + ... + %d = %d\n", GetDoubleNumber(iMaxNum), iSum); printf("\n");}// 测试结果:
    回答于 2019/09/27 07:24
0人关注该问题
+1

 加载中...