Skip to content
Programmingoneonone
Programmingoneonone

Learn everything about programming

  • Home
  • CS Subjects
    • Internet of Things (IoT)
    • Digital Communication
    • Human Values
    • Cybersecurity
  • Programming Tutorials
    • C Programming
    • Data structures and Algorithms
    • 100+ Java Programs
    • 100+ C Programs
  • HackerRank Solutions
    • HackerRank Algorithms Solutions
    • HackerRank C problems solutions
    • HackerRank C++ problems solutions
    • HackerRank Java problems solutions
    • HackerRank Python problems solutions
Programmingoneonone
Programmingoneonone

Learn everything about programming

HackerEarth Recursive Sums problem solution

YASH PAL, 31 July 2024
In this HackerEarth Recursive Sums problem solution Little Bear has received a home assignment to find the sum of all digits in a number N. Following his affinity towards single-digit numbers, he intends to repeatedly compute the sum of all digits until the sum itself becomes a single-digit number.
Can you write a program to compute the final single-digit sum?
As the number N is very big, it is given in the following run-length encoded format – N is represented as a sequence of M blocks, where each block i (0 ≤ i < M) is represented by two integers – (len[i], d[i]). This implies that the digit d[i] occurs a len[i] number of times.
HackerEarth Recursive Sums problem solution

HackerEarth Recursive Sums problem solution.

#include <bits/stdc++.h>
using namespace std;

#define MOD 1000000007
#define pb(x) push_back(x)
#define mp(x,y) make_pair(x,y)
#define FF first
#define SS second
#define s(n) scanf("%d",&n)
#define sl(n) scanf("%lld",&n)
#define sf(n) scanf("%lf",&n)
#define ss(n) scanf("%s",n)
#define sc(n) {char temp[4]; ss(temp); n=temp[0];}
#define INF (int)1e9
#define LINF (long long)1e18
#define EPS 1e-9
#define maX(a,b) ((a)>(b)?(a):(b))
#define miN(a,b) ((a)<(b)?(a):(b))
#define abS(x) ((x)<0?-(x):(x))

typedef long long ll;
typedef unsigned long long LL;
typedef pair<int,int> PII;
typedef pair<LL,LL> PLL;
typedef pair<int,PII> TRI;
typedef vector<int> VI;
typedef vector<LL> VL;
typedef vector<ll> vl;
typedef vector<PII> VII;
typedef vector<TRI> VT;

int n;
int TEST_NO;
void precompute() {

}
void read() {
s(n);
ll ans = 0;
bool g0 = false;
for (int i = 0; i < n; ++i) {
ll len, d;
cin >> len >> d;
if(d > 0) g0 = true;
ans += (len * d) % 9;
if(ans >= 9) ans -= 9;
}
if(ans == 0 and g0) ans = 9;
cout << ans << endl;
}
void preprocess() {

}
void solve() {

}
int main() {
precompute();
int t;
s(t);
for(TEST_NO = 1; TEST_NO <= t; TEST_NO ++) {
read();
preprocess();
solve();
}
return 0;
}

Second solution

#include <iostream>
using namespace std;

#define ull unsigned long long

int cal(ull d) {
if (d < 10) return d;
int res = 0;
while (d > 0) {
res += d % 10;
d /= 10;
}
return cal(res);
}

int main() {
int cases, n, d;
for (scanf("%d", &cases); cases--; ) {
scanf("%d", &n);
ull sum = 0, len;
for (int i = 0; i < n; i++) {
cin >> len >> d;
sum += d * len;
sum = cal(sum);
}
sum = cal(sum);
cout << sum << endl;
}
return 0;
}
coding problems solutions

Post navigation

Previous post
Next post

Pages

  • About US
  • Contact US
  • Privacy Policy

Follow US

  • YouTube
  • LinkedIn
  • Facebook
  • Pinterest
  • Instagram
©2025 Programmingoneonone | WordPress Theme by SuperbThemes