# 算術運算# 字元處理# 迴圈

a149 - 乘乘樂

🔗 前往 ZeroJudge 原題

題目描述

題目要求讀取多組測試資料,每組資料包含一個整數 n。對於每個 n,計算其所有位數數字的乘積,並輸出結果。如果 n 包含 0,則乘積為 0。

解題思路

程式碼首先讀取測試資料組數 popo。然後,進入迴圈,每次讀取一個整數 a。對於每個 a,程式碼初始化乘積 s 為 1。如果 a 為 0,則直接將 s 設為 0。否則,使用迴圈迭代 a 的每一位數字,將每一位數字與 s 相乘。最後,輸出 s 並將其重置為 1,準備處理下一組測試資料。

複雜度分析

  • 時間複雜度: O(N * K),其中 N 是測試資料組數,K 是每個數字的位數。
  • 空間複雜度: O(1)

程式碼

#include <iostream>

using namespace std;

int main(){
	
	int a=0;
	long long int s=1;
	int popo=0;
	
	cin >> popo;
	
	while(cin >> a){//123  1*2*3
	
	if(a==0){s=0;}
		for(int i=0;a>=1;a/=10){
			s=s*(a%10);
		}
		cout << s <<endl;
		s=1;
		
	}
}

Discussion