15f9996aaSopenharmony_ci/* 25f9996aaSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 35f9996aaSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 45f9996aaSopenharmony_ci * you may not use this file except in compliance with the License. 55f9996aaSopenharmony_ci * You may obtain a copy of the License at 65f9996aaSopenharmony_ci * 75f9996aaSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 85f9996aaSopenharmony_ci * 95f9996aaSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 105f9996aaSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 115f9996aaSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 125f9996aaSopenharmony_ci * See the License for the specific language governing permissions and 135f9996aaSopenharmony_ci * limitations under the License. 145f9996aaSopenharmony_ci */ 155f9996aaSopenharmony_ci 165f9996aaSopenharmony_ci#include <iostream> 175f9996aaSopenharmony_ci 185f9996aaSopenharmony_cistatic const uint32_t ip_idx = 1; 195f9996aaSopenharmony_ci 205f9996aaSopenharmony_ciusing namespace std; 215f9996aaSopenharmony_ci 225f9996aaSopenharmony_cinamespace { 235f9996aaSopenharmony_ciuint32_t fact(uint32_t ip) 245f9996aaSopenharmony_ci{ 255f9996aaSopenharmony_ci if (ip == ip_idx) { 265f9996aaSopenharmony_ci return ip; 275f9996aaSopenharmony_ci } else { 285f9996aaSopenharmony_ci return ip * fact(ip - ip_idx); 295f9996aaSopenharmony_ci } 305f9996aaSopenharmony_ci} 315f9996aaSopenharmony_ci} // namespace