一些简单的编程题(Java与C语言)
引言:
这篇文章呢,小编将会举一些简单的编程题用来帮助大家理解一下Java代码,并且与C语言做个对比,不过这篇文章所出现的题目小编不会向随缘解题系列里面那样详细的讲解每一到题,本篇文章的主要目的是帮助小编和读者们熟悉Java代码。后续小编将会开始更新java模块的知识体系!!!
一、题目一
编写程序数一下1到 100 的所有整数中出现多少个数字9
1- 题目分析
首先,1~100之间要想出现9,只有可能出现在个位或者十位上,比如说19,这里9就出现在个位上,又比如说91,这里9就出现在十位上,因此我们想要得到1~100以内9的个数,只需要将该数num/10这样就可以得到十位上的数字,num%10这样就可以得到个位上的数字
2- C语言代码编写:
#include <stdio.h>
int main()
{
int count = 0;//计数器用来存放9的个数
for (int i = 1; i <= 100; i++)
{
if (i / 10 == 9 )
count++;//十位上是9就加1
if (i % 10 == 9)
count++;//个位上是9就加1
}
printf("%d", count);
return 0;
}
3- Java代码编写:
public class Test {
public static void main(String[] args) {
int count = 0; //存放9的个数
for (int i = 1; i <= 100 ; i++) {
if(i/10 == 9)
count++;
if(i%10 == 9)
count++;
}
System.out.println(count);
}
}
4- 结果演示:
二、题目二
输出 1000 - 2000 之间所有的闰年
1- 题目分析
关于闰年相比大家都已经很熟悉了,简单说一下判断是不是闰年有两种方法;
- 能被4整除但不能被100整除
- 能被400整除的数
通过循环获得1000~2000的数。
2- C语言代码编写:
#include <stdio.h>
int main()
{
for (int i = 1000; i <= 2000; i++)
{
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)
{
printf("%d ", i);
}
}
return 0;
}
3- java代码编写:
public class Test {
public static void main(String[] args) {
for (int i = 1000; i <= 2000 ; i++) {
if(i%4 == 0 && i % 100!=0 || i%400==0){
System.out.println(i);
}
}
}
}
4- 结果演示:
三、题目三
计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值 。
1- 题目分析
本题分子都是1,且分母从1~100,每个数想表示出来很简单,因此这道题唯一需要解决的问题就是怎么表示正负,表示正负的方法有很多,这里我就使用一种来介绍一下,看代码
2- C语言代码编写:
#include <stdio.h>
int main()
{
double sum = 0.0;
int flg = 1;//假设起始为1
for (int i = 1; i <= 100; i++)
{
sum = sum + 1.0 / i * flg;//1.0/i是为了得到的数字是小数类型,每位数都与flg相乘
flg = -flg;//如果上一个flg是1,则下次循环时flg变为-1,实现正负交替
}
printf("%lf", sum);
return 0;
}
3- java代码编写:
public class Test {
public static void main(String[] args) {
double sum = 0.0;
int flg = 1;
for (int i = 1; i <= 100 ; i++) {
sum = sum + 1.0/i*flg;
flg = -flg;
}
System.out.println(sum);
}
}
4- 结果演示:
四、题目四
输出一个整数的每一位,如:123的每一位是3,2,1
1- 题目分析:
可以通过num%10得到最低位,再通过num/10去除最低位
这里就不详细介绍怎么得到的了,如果有不会的可以点这里查看
题目讲解(2)-CSDN博客
2- C语言代码编写:
#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
while (num)
{
printf("%d ", num % 10);
num /= 10;
}
return 0;
}
3- Java代码编写:
java的数据输入:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
while(num!=0){
System.out.println(num%10);
num = num /10;
}
}
}
这里使用了java中的数据输入,后面介绍java的时候会讲到
4- 结果演示:
五、题目五
编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输入,最多输入三次。三次均错,则提示退出程序
1- 题目分析
首先需要设置一个正确密码,然后再创建一个数组用来存放你输入的密码,题目中说了有三次输入机会,因此可以使用while循环,循环条件可以是输入次数不为0,这样当循环次数为0也就是说三次都输错了,退出循环。使用strmp函数来比较我们输入的字符串与原密码是否相等,如果相等,则提示登陆成功。
2- C语言代码编写:
#include <stdio.h>
#include <string.h>
int main() {
char rightPIN[] = "123456"; // 设定正确密码
char inputPIN[20];
int count = 3;
while (count != 0) {
printf("请输入密码:");
scanf("%s", inputPIN);
if (strcmp(inputPIN, rightPIN) == 0) //比较输入的密码是否和正确密码一样
{
printf("登录成功!\n");
return 0;
}
else {
printf("密码错误,请重新输入。\n");
count--;
}
}
printf("三次密码输入错误,退出程序。\n");
return 0;
}
3- java代码编写:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int count = 3;
Scanner scanner = new Scanner(System.in);
while(count != 0){
System.out.println("你还有"+count+"次机会");
System.out.println("请输入密码:");
String pass = scanner.nextLine();
if (pass.equals("123456")){
System.out.println("登陆成功");
return;
}else{
count--;
}
}
}
}
这里使用了java中字符串比较的方法,后续也会介绍到。
4- 结果演示:
结语:
这篇文章没有介绍什么知识点,主要是为了引出小编后续将要介绍的知识,不过从这篇文章也能了解一些关于java的用法,比如说java的输入,输出,以及字符串比较!
关于C语言的知识,小编还没有更新完成,不过不用担心小编更新Java就不更新C语言后面的知识了,关于C语言剩下的那点内容,小编呢会找时间将它们全部介绍完,能够让大家在我这里找到完整的C语言笔记。敬请期待!!!