📌  相关文章
📜  求出系列0.X + 0.XX + 0.XXX +…的和,最多k个项

📅  最后修改于: 2021-05-06 20:15:06             🧑  作者: Mango

给定一系列k项,其中“ X”是介于0到9之间的任何值,“ k”是任何正整数。任务是找到给定序列的总和:

例子

Input: x = 4 , k = 10
Output : 4.39506

Input: x = 9 , k = 20
Output: 19.8889

解释:
$ Result = 0.x + 0.xx + 0.xxx + ...\, up\, to\, k\, terms\\ = x/9(0.9 + 0.99 + 0.999 +... up \, to\, k\, terms)\\ = x/9[(1 - 0.1) + (1 - 0.01) + (1-0.001) + ...\, up\, \, to \, k\, terms]\\ = x/9[(1 + 1 + 1... \, upto\, k \, terms) - (1/10 + 1/100 + 1/1000 + ...\, upto\, k \, terms)]\\ = x/9[n - 0.1 * (1 - (0.1)^k)/(1 - 0.1)]\\ = x/81[9k - 1 + (10)^{-n}]\\ $

C++
// C++ program for sum of the series
// 0.x,  0.xx, 0.xxx, ... upto k terms
#include 
using namespace std;
 
// function which return the sum of series
float sumOfSeries(int x, int k)
{
    return (float(x) / 81) * (9 * k - 1 + pow(10, (-1) * k));
}
 
// Driver code
int main()
{
    int x = 9;
    int k = 20;
    cout << sumOfSeries(x, k);
 
    return 0;
}


Java
// Java program for sum of the series
// 0.x,  0.xx, 0.xxx, ... upto k terms
 
public class GFG {
     
    // function which return the sum of series
    static float sumOfSeries(int x, int k)
    {
       float y = (float) (((float)(x) / 81) * (9 * k - 1 + Math.pow(10, (-1) * k)));
       return y ;
    }
     
    // Driver code
    public static void main (String args[]){
         int x = 9;
         int k = 20;
         System.out.println(sumOfSeries(x, k));
    }
 
// This code is contributed by ANKITRAI1
}


Python3
#Python3 program for sum of series
#0.x, 0.xx, 0.xxx, ... upto k terms
 
#function which return the sum of series
def sumOfSeries(x, k):
     
    return (float(x)/81) * (9 * k - 1 + 10**( (-1)*k ) )
     
#Driver code
if __name__=='__main__':
    x = 9
    k = 20
    print(sumOfSeries(x, k))
# This code is contributed by Shashank Sharma


C#
// C# program for sum of the series
// 0.x, 0.xx, 0.xxx, ... upto k terms
using System;
 
class GFG
{
 
// function which return
// the sum of series
static float sumOfSeries(int x, int k)
{
    float y = (float)(((float)(x) / 81) *
              (9 * k - 1 + Math.Pow(10, (-1) * k)));
    return y ;
}
 
// Driver code
public static void Main ()
{
    int x = 9;
    int k = 20;
    Console.Write(sumOfSeries(x, k));
}
}
 
// This code is contributed
// by ChitraNayal


PHP


Javascript


输出:
19.8889