我有数字1到100,现在程序中只有 + - * / > < >= <= <> == 想实现判断奇偶数,系统中
没有%(取余)这个参数,求各位大神,帮忙实现一下,谢谢。
我开始考虑 通过小数和整数来判断 但是系统 还是没有 判断整数和小数的函数。
只有 加 减 乘 除 大于 小于 小于等于 大于等于 不等于 等于 这些条件。求各位大神
帮帮忙,小弟在此感谢大家。
什么程序,在哪里,把程序贴出来。光有如上运算符,肯定是判断不了的。
要么有循环,要么有整除,要么有字符串判断
循环除2 当结果小于等于1是结束 ,最后的结果等于1 就是偶数,小于1就是奇数
不需要把 /
解释成整除的特殊用法。
用二进制的方式思考,判断奇偶用最低一位。
那么问题就变成用加减乘除把其它位清零,很简单的。
下面是C#代码。
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
for (int k = 64; k >= 2; k = k / 2)
{
if (n > k) n = n - k;
}
if (n == 1)
Console.WriteLine("奇数");
else
Console.WriteLine("偶数");
Console.ReadLine();
}
}
}
提供一个思路:
(1)前提可以将数字变为double型或者float型
使用循环判断,看看数字是否大于等于2,若大于或等于皆除以2,直到得到的数小于2,最终得到的数若等于1,则为偶数,否则为奇数。
(2)使用二分法
首先,先判断是否大于50,若大于,则判断是否大于75,若大于,就这样不断判断下去,这样就可以判断出是哪个数,由此当然也可以判断出是奇偶了
大于等于2,减2,否则,等于1为奇,等于0为偶。
把那个数除以2再乘以2,看结果是不是和原有的数值相等。
public class Test {
public static void main(String[] args) {
System.out.println("请输入一个1--100的数:");
int num = 0;
while(true) {
Scanner scInput = new Scanner(System.in);
if(scInput.hasNextInt()) {
num = scInput.nextInt();
break;
}else {
System.out.print("请输入1--100的整数:");
}
}
while(num <= 100) {
num += 2;
}
if(num == 102) {
System.out.println("是偶数");
}else {
System.out.println("是奇数");
}
}
}
有一定的局限性,但是可以实现1--100中奇数和偶数的判断。
循环除2 当结果小于等于1是结束 ,最后的结果等于1 就是偶数,小于1就是奇数