Problem p00054 - Generation 3

Orig Description

Sum of Decimal Digits
Let a, b, and n be positive integers. Let f(i) be the i-th digit (0 ≤ f(i) ≤ 9) of the decimal expansion of the fraction a / b. Define the sum s as the sum of the first n digits:
s = f(1) + f(2) + ... + f(n)
Write a program that reads a, b, and n, and outputs s.
Input
The input consists of multiple datasets. Each dataset consists of three integers a (1 ≤ a ≤ 1000), b (1 ≤ b ≤ 10000), and n (1 ≤ n ≤ 100), separated by a single space, on a line.
There are no more than 100 datasets.
Output
For each dataset, output s on a line.
Sample Input
1 2 3
2 3 4
5 4 3
4 3 2
Output for the Sample Input
5
24
7
6

Extracted Specification

An integer a (1 ≤ a ≤ 1000).
An integer b (1 ≤ b ≤ 10000).
An integer n (1 ≤ n ≤ 100).

### Example Input:

```
1 2 3
2 3 4
5 4 3
4 3 2
```

### Function Signature:
Write a function f(inputs) that takes in the input.
def f(inputs: List[Tuple[int, int, int]]):
    ''' 
    inputs: a list of tuples, where each tuple contains three integers
    '''

Test Case Generator

Certainly! Below is a test case generator for the "Sum of Decimal Digits" problem statement.

```python
import random

def tcgen():
    datasets = []
    num_datasets = random.randint(1, 100)

    for _ in range(num_datasets):
        a = random.randint(1, 1000)
        b = random.randint(1, 10000)
        n = random.randint(1, 100)
        datasets.append((a, b, n))
    
    return datasets

# Example usage:
random.seed(0)  # Optional: for reproducibility
test_datasets = tcgen()

for dataset in test_datasets:
    print(f"{dataset[0]} {dataset[1]} {dataset[2]}")
```

This generator creates a random number of datasets (between 1 and 100). For each dataset, it generates three integers \(a\), \(b\), and \(n\) within the specified ranges. Each dataset is stored as a tuple in the list `datasets`. Finally, the generator returns the list of datasets.

You can use the example usage provided to print the generated test cases. Note that the `random.seed(0)` line is optional and can be used to ensure reproducibility of the generated test cases for debugging or testing purposes.

Extract Arguments

def extract_arguments(fh):
    inputs = []
    for line in fh:
        a, b, n = map(int, line.strip().split())
        inputs.append((a, b, n))
    return inputs