时间转换
题目描述
输入一个正整数(秒钟),请将其转换成为如下格式:
时:分:秒。
输入
单组输入,输入一个正整数表示总秒数。
输出
输出转换之后的时间。
样例输入 Copy
1245
样例输出 Copy
0:20:45
#include <stdio.h>
int main()
{
int input;
while(scanf("%d",&input)!=EOF){
printf("%d:%d:%d",input/3600,input%3600/60,input%60);
}
return 0;
}
数字求和
题目描述
使用递归编写一个程序,计算一个正整数中所有数字之和。例如输入234,输出9。
输入
多组输入,每组输入一个正整数。
输出
输出结果,每个结果占一行。
样例输入 Copy
234
样例输出 Copy
9
#include <stdio.h>
int compute(int input)
{
if(input/10==0)
{
return input;
}else{
return compute(input/10)+input%10;
}
}
int main()
{
int input;
while(~(scanf("%d",&input)))
{
printf("%d\n",compute(input));
}
return 0;
}
def compute(num):
if(num / 10 == 0):
return 0
else:
return int(compute(num / 10) + (num % 10))
while(1):
string = input()
num = int(string)
print(compute(num))
十六进制
题目描述
小米同学最近在学习进制转换。众所周知,在表示十六进制数时,除了0-9这九个阿拉伯数字外,还引入了“A”、“B”、“C”、“D”、“E”和“F”这六个英文字母(不区分大小写)。
现在给你一个十进制正整数,请问在将其转换为十六进制之后,对应的十六进制表示中有多少位是字母?
输入
单组输入。
输入一个十进制正整数N(N<=10^6)。
输出
输出将N转换成十六进制数字后所包含的字母位的数量,如果没有字母位则输出0。
样例输入 Copy
20
样例输出 Copy
0
#include <stdio.h>
int main()
{
int input,count=0;
scanf("%d",&input);
while(input>0) //&&input<=1000000
{
if((input%16)>=10)
{
count+=1;
}
input=input/16;
}
printf("%d",count);
return 0;
}
平行四边形
题目描述
Kimi想用“*”号构成一个平行四边形并在屏幕上输出。
当输入一个大于等于2的正整数N时,屏幕上将显示一个由N*N个“*”组成的平行四边形。
例如:输入3,输出如下平行四边形。
***
***
***
输入
输入一个正整数N,1<N<=100。
输出
输出一个N行,每行N个“*”组成的平行四边形。
样例输入 Copy
3
样例输出 Copy
*** *** ***
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
int input;
scanf("%d",&input);
if(input>=0&&input<=100)
{
for(int i=1;i<=input;i++)
{
for(int x=0;x<(input-i);x++)
{
printf(" ");
}
for(int y=0;y<input;y++)
{
printf("*");
}
printf("\n");
}
}
return 0;
}
n = int(input())
i = 0
if n>=1 and n<=100:
while i < n :
print(" " * (n-1-i) + "*" * n)
i = i + 1
临时换人
题目描述
因为某些原因,Jack和Rose没有办法参加毕业演出,他们两个的工作任务都将由劳模Tom来代替。
现在需要更新演职人员名单,将所有的Jack和Rose替换成Tom。
请你编写一段程序实现人员替换功能。
输入
单组输入。
输入一个字符串(可能有空格,字符串长度<=1e5),包含若干Jack和Rose。
输出
输出替换之后的字符串。
样例输入 Copy
Cameraman: Jack, Lighting engineer: Rose.
样例输出 Copy
Cameraman: Tom, Lighting engineer: Tom.
import java.util.Scanner;
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
String str;
str = scanner.nextLine();
str = str.replaceAll("Jack", "Tom");
str = str.replaceAll("Rose", "Tom");
System.out.println(str);
scanner.close();
}
}
before = input()
mid = before.replace("Jack", "Tom")
after = mid.replace("Rose", "Tom")
print(after)
数字整除
题目描述
定理:把一个至少两位的正整数的个位数字去掉,再从余下的数中减去个位数的5倍。当且仅当差是17的倍数时,原数也是17的倍数 。
例如,34是17的倍数,因为3-20=-17是17的倍数;201不是17的倍数,因为20-5=15不是17的倍数。输入一个正整数n,你的任务是判断它是否是17的倍数。
输入
输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=10100),表示待判断的正整数。n=0表示输入结束,你的程序不应当处理这一行。
输出
对于每组测试数据,输出一行,表示相应的n是否是17的倍数。1表示是,0表示否。
样例输入 Copy
<span style="background-color:#ffffff"><span style="color:#333333"><span style="color:#333333"><span style="background-color:#f5f5f5">34
201
2098765413
1717171717171717171717171717171717171717171717171718
0</span></span></span></span>
样例输出 Copy
<span style="background-color:#ffffff"><span style="color:#333333"><span style="color:#333333"><span style="background-color:#f5f5f5">1
0
1
0</span></span></span></span>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main() {
int i=0,j=0;
int x = 0;
int result[10];
char num;
scanf("%c", &num);
do {
//只要不换行,一直输入单个字符组成字符串,并且判断这个数是否是17的倍数
while (num != '\n') {
//x左移一位加上后面输入的位
x *= 10;
//所有数字都是以字符形式读入,因此进行运算前需要进行 num - '0'
x += num - '0';
x %= 17;
scanf("%c", &num);
}
if (x == 0)
{
result[i++]=1;
}else{
result[i++]=0;
}
//换行以后输入下一组,x置零
scanf("%c", &num);
x = 0;
} while (num != '0');
for(j=0;j<i;j++)
{
printf("%d\n",result[j]);
}
return 0;
}