1 条题解
-
0
C :
#include<stdio.h> int add1(int n) { int i,s=0,k=10; for(i=1;i<5;i++) { s=n%k+s; n=n/10; } s=s+n; return s; } int add2(int n) { int i,s=0,k=10; for(i=1;i<10;i++) { s=n%k+s; n=n/10; } s=s+n; return s; } int main() { int n,i,s,p; while(scanf("%d",&n)!=EOF) { if(n==0) break; s=add1(n); n=n*n; p=add2(n); printf("%d %d\n",s,p); } }
C++ :
#include <stdio.h> int SeparateDigits(int num, int arr[]){ int numOfDigits = 1; arr[0] = 0; while(num){ arr[numOfDigits++] = num % 10; num /= 10; } return numOfDigits; } int main(){ #ifndef ONLINE_JUDGE freopen("in", "r", stdin); #endif int digits[20]; int num; while(scanf("%d", &num), num){ int numOfDigits = SeparateDigits(num, digits); int ans = 0; for(int i=0; i<numOfDigits; i++){ ans += digits[i]; } numOfDigits = SeparateDigits(num*num, digits); int squareAns = 0; for(int i=0; i<numOfDigits; i++){ squareAns += digits[i]; } printf("%d %d\n", ans, squareAns); } return 0; }
Pascal :
var n,i,s,j,a,b:longint; begin readln(n); while n<>0 do begin s:=n*n;a:=0;b:=0; while n>0 do begin a:=a+n mod 10; n:=n div 10; end; while s>0 do begin b:=b+s mod 10; s:=s div 10; end; writeln(a,' ',b); readln(n) end; end.
Java :
import java.util.Scanner; public class Main { Scanner input=new Scanner(System.in); int num=0; int sum=0; int sumofsquare=0; int square=0; public Main() { while(input.hasNextInt()) { num=input.nextInt(); sum = 0; sumofsquare=0; square = 0; square=num*num; if(num==0) break; else while(num>0) { sum+=num%10; num=(int)num/10; } while(square>0) { sumofsquare+=square%10; square=(int)square/10; } System.out.println(sum+" "+sumofsquare); } } public static void main(String[] args) { Main main=new Main(); } }
- 1
信息
- ID
- 1741
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者