#include<stdio.h> int DaBianShen(int num) { int sum = 0; while (num) { sum += num % 10; num /= 10; } if (sum > 9) return DaBianShen(sum); else return sum; } int main() { int num = 0; scanf("%d", &num); printf("%d\n", DaBianShen(num)); return 0; }
#include <stdio.h> int compute(int num){ int sum = 0; while(num){ int t = num % 10; num /= 10; sum += t; } return sum; } int main(){ int n, sum = 0; scanf("%d", &n); sum = compute(n); //第一轮 while(sum > 9){ sum = compute(sum); } printf("%d", sum); return 0; }
#include <stdio.h> int f(int n); int main() { int n; scanf("%d",&n); printf("%d",f(n)); return 0; } //递归函数 int f(int n){ if(n<=9){ return n; }else{ return f(f(n/10)+n%10); } }
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int a, he = 0; scanf("%d", &a); //循环检验每个位数相加的和是否为个位数 是则跳出循环 for (int y = 0; y < 10; y++) { for (int x = 0; x < 10; x++) { he += a % 10; a /= 10; } if (he / 10 == 0) { break; } else { a = he; he = 0; } } printf("%d", he); return 0; }
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String str = in.nextLine(); int sum = 0; do{ sum = 0; for(int i=0 ;i<str.length();i++){ sum += str.charAt(i)-'0';// 这里记得是减去0 ,不是因为要加减零把字符串变成数字,而是减去ascii码 } str = String.valueOf(sum); }while( sum>=10); System.out.println(sum); } }
#include <stdio.h> int function(int x); int function(int x) { int sum=x; while(sum>=10) { int num=sum; int a,s=0; while(num>0) { a=num%10; s+=a; //一开始写成sum+=a;导致陷入死循环 num/=10; } sum=s; } return sum; } int main() { int n,c; scanf("%d",&n); if(n<1||n>1e9) { return 1; } c=function(n); printf("%d",c); return 0; }