小于两千的值 因此输出的k 应该是k-1
小于两千的值 因此输出的k 应该是k-1
int total = 0;
for(int i = 1; i< 11; i++){
int temp = 1;
for (int j = 1; j < i + 1; j ++){
temp =temp * j;
}
//i!
total = total + temp;
}
Console.WriteLine(total);
递归的写法:
static int F1(int n )
{
if(n ==1)
return 1;
int result = n *F1(n-1);
return result;
}
static int F2(int n )
{
if(n ==1)
return 1;
int result =F2(n-1)+F1(n);// 相加 ,加上累乘
return result;
}
static void Main(string[] args)
{
int n = Convert.ToInt32(Console.ReadLine());
int m = n;
string s = "";
while (n != 0)
{
s += Convert.ToString(n % 10);
n /= 10;
}
if (Convert.ToString(m) == s)
{
Console.WriteLine("您输入的数{0}是回文数", n);
}
else { Console.WriteLine("您输入的数不是回文数"); }
}
static void Main(string[] args)
{
int n = Convert.ToInt32(Console.ReadLine());
string s = "";
while (n != 0)
{
s += Convert.ToString(n % 10);
n /= 10;
}
Console.WriteLine(Convert.ToInt32(s));
}
首先是通过count 来存放 因子的个数 数量
之后在函数里for循环 若找到因子
if ( number % i ==0)
count++;
定义一个数组用来,其长度为number的数量,之后找到了因子就放到数组里面,来一个数就放进去
而数组具体的位置存放的数则需要index
从而知道数放在哪个位置,来一个数就让index++
int [] array = new int [count];
int index = 0;
for(int i =1;i< number; i++)
{
if(number % i ==0)
array[index] = i;
index ++;
}
return array;
赋值运算符
1.a+=b,即为a=a+b,-=,/=,*=,以及其他同格式运算都是相同逻辑
数学运算符
1.除常用的四种数学运算外,还有取模(求余),通常用于整数运算,用于小数时容易出现不精确的问题;
2.当运算的数字均为整数时则可以用int作输出,但如果运算的数字中有一个或以上的数字是小数是(如10.0)则输出要用double而非int
static bool Issu(int number){
bool isSu = true;
for (int j = 2;j< nunber-1;j++)//2~i-1
{
if(number %j=0){
isSu = false;
return issu;
}
}
return issu;
}
static void Hain(string[] args){
//m≤n
string str = Console.ReadLine();
string[] strArray = str.Split("");
int[] intArray =new int[strArray.Length];
for (int j =0; j< strArray.Length; j++){
int number= Convert.Toint32(strArray[j];
intArray[j] = number;
}
int m = intArray[0];
int n = intArray[1];
for(int i =m;i<n+1;i++)// m -n range
{
bool isSu = true;
for(int j=2;j<i;j++)// 2~i-1
{
if(i %j ==0)
{
isSu = false;
break;
}
}
if (isSu)
{
int temp = i;
int number = 0;
while ( temp %10 !=0)//余数不等于0
{
number = number*10+temp%10;
temp = temp /10;
}
bool isSuFan = true;
for(int j=2;j<number;j++)
{
if(number %j ==0)
{
isSuFan = false;
break;
}
}
if(isSuFan == true)
{
Console .write( number);
}
}
}
字符串格式化输出
1.console.writeline("两个数字相加{0}+{0}={2}",34,134,4);该代码中,34即为{0}号位,134为{1}号位,4为{2}号位
命名规范和命名规则
1.变量命名只能以字母、数字、下划线组成,且不能以数字开头或与关键字重名
2.驼峰命名法,当组成变量名的元素过长时,首个单词的首字母小写,其余单词首字母大写(例:enemyHp)
3.Pascal命名规范,则是每个单词首字母都大写(EnemyHp),如果是英文单词缩写,则全部用大写(PI HP MP)
变量的交换
1.当a=5,b=10,而需要做出数值交换时,即变更为b=5,a=10时,可以通过临时变量来存储变换,代码为temp
2.具体操作为
int temp=a;(将A的数值移入临时容器中存储)
a=b
b=temp
即可完成数值交换,该方法为通用方法
计算机:硬件+
第一种情况:
int a = 3;
int b = a++ + (a++);
相当于b=3(先取a的备份为3,取完后a再自增3++为4,此时的a已变为4)+4(还是先取a备份为4,取完后a再自增4++为5)=7,计算完成后b=3+4=7,a经过两次自增为5
第二种情况:
int a = 3;
int b = a++ + (++a);
b=3(先取a的备份为3,取完后a再自增3++为4,此时的a已变为4)+5(因为++在前,所以直接对a先进行自增,此时的a为4,所以自增后4++为5)=8,a经过两次自增为5
总结:在赋值运算中,如果存在自增符,自增符在变量后面的,计算时从左到右顺序计算,先对变量a进行备份取值,然后再进行自增,然后再进行下一步的计算
1、添加项目模板,如果采样.net框架,要加入console.ReadKey();这样命令行窗口就不会关闭了。
怎么得到用户输入
1.Console.ReadLine(),效果为读取输入控制台的数据并回应为字符串,与writeline的控制台输出的作用正相反。
举例:string str=console.readline();console.writeline(str+“-”)运行后可以在控制台进行输入字符串,如drell,则控制台输出的结果就是drell-
2.字符串的数字仅为字符串,并非实际含义中的数字,即字符串“12”仅代表为字符串“1”和“2”,而不是实际的整数 12
3.若要将一个字符串做转换为实际意义,则可以用Convert.ToInt32(str)来转换,但该代码只能转换字符串整数,转换为整数本身,如df这类非数字字符串是无法直接转换的
字符串的声明和简单拼接操作
1.“\n”中的“\”是不作为字符表示,而是起转译作用(类比为游戏中的复数按键组成的组合键功能),\n“”转译后为换行功能
2."\t"在C语言里表示水平制表(HT) (跳到下一个TAB位置)
3.若要使代码中的“\”不起作用,可以在最前面加入“@”符号,即可使符号后的“\”不起转译作用,仅为符号\本身
4.string,用于声明一个字符串(由数字、字母、下划线组成的一串字符),如“www.sikiedu.com\nsiki”
5.字符串的书写是必须连贯的,中间不能有空格放在同一行中
6.但是如果在字符串前加“@”后,则不受第5点的限制
7.若要在@后的字符串中,输入符号“,则需要输入两个”,即“”来表示“
字符类型和对应整数
1.当进行赋值时,“=”两侧的类型需要是一致的(char对char,int对int)
2.语法错误时,VS会报错提示,但如果是语法无误逻辑出错时,VS则无法报错提示
3.int的容量非常大,而char只有几百的容量,因此int无法直接赋值于char类型,但可以通过强制类型转换的方式执行,
如int a =97;char b = (char)a;
4.强制类型转换,若被赋值的容器小于赋值的容器,则会出现数值丢失的问题
赋值方式:
1:int [] 数据={,,};
2:数据=new int[赋值];(默认值)
3:数值=new int[]{ , , ,}
4:数值=new int[数组大小]{ , , ,}
变量需要先声明再使用
例:
int c(声明)
int c=10(赋值、初始化)
Console.WriteLine(c)(使用)